Size: a a a

2021 June 23

S

Sergey in Go-go!
Это разве не может быть только при каком-то суперглобальном мьютексе)
источник

Z

Zver in Go-go!
Может 2 мютекса используются.
источник

DP

Daniel Podolsky in Go-go!
это может быть, если кто-то придумал сложную логику взятия-отпускания мутексов, и отпускает мутекс, например, дважды
источник

AB

Andrey Burov in Go-go!
в golang mutex это обычная структура с таким-то поведением, ничего сверх там нет
источник

S

Sergey in Go-go!
И что?
источник

S

Sergey in Go-go!
У каждого мьютекса свой стейт. Они не перекликаются никак.
источник

AB

Andrey Burov in Go-go!
там uintptr с CAS (compare and swap)
источник

Z

Zver in Go-go!
Ну и случайно у одного 2 раза унлокнули, вместо у двух разных.
источник

Z

Zver in Go-go!
Хотя не встречал в жизни.
источник

AB

Andrey Burov in Go-go!
ну это косяк просто в коде... что такого
источник

DP

Daniel Podolsky in Go-go!
я два раза такое чинил, один раз сам и создал, как выяснилось
источник

е

енот in Go-go!
почему у меня приложение завершается? я же хттп-сервер включаю.
https://gist.github.com/chemax/0f7b88f9fc19ed7c324a9467016a7293
источник

ЛА

Локоть Анатолий... in Go-go!
похоже на ошибку использования мьютекса или самодельном мьютексе с багом.
тк кейс обычно Lock(), Unlock(),
то двойной Unlock может быть либо если Lock() не атомарный и несколько рутин его успешно вызвали (самодельный кривой мьютекс?),
либо если в коде Unlock вызывается без нужды (ошибка использования).

Если нужно, чтобы Lock() был неблокирующим для более чем 1 горутины, то это семафор и он пишется на буфферизованном канале двумя строками кода.
Хотя сейчас вроде и в sync пакете есть реализация из коробки - https://pkg.go.dev/golang.org/x/sync@v0.0.0-20210220032951-036812b2e83c/semaphore
источник

AB

Andrey Burov in Go-go!
http.ListenAndServe возвращает ошибку, что там?
источник

Z

Zver in Go-go!
Порт занят.
источник

NL

Nikita L in Go-go!
А ListenAndServe разве ошибку не возвращает?
источник

AB

Andrey Burov in Go-go!
источник

Z

Zver in Go-go!
Да.
источник

Z

Zver in Go-go!
Всегда обрабатывать надо.
источник

NL

Nikita L in Go-go!
+
источник