Всем привет, пытаюсь понять работу sync.Cond. Но что-то не получается, мой пример
c := sync.NewCond(&sync.Mutex{})
var wg sync.WaitGroup
wg.Add(1)
go func() {
wg.Done()
c.L.Lock()
defer c.L.Unlock()
c.Wait()
fmt.Println("I'm created")
}()
c.Signal()
wg.Wait()
Эта строчка fmt.Println("I'm created") никогда не вызывается... Примеры других примеров нашел в книгах, но они все другие и я не могу понять сам процесс работы. По идее, я в горутине ожидаю сигнала, в конце его посылаю и горутина должна разблокироваться, но как-то не работает(. Если ставлю wg.Done в конце, то вообще получаю дедлок