Транзитивность happens-before: A→B и B→C, значит A→C. Реализуйте readThroughChain: A пишет data и сигналит ab, B передаёт в bc, C ждёт bc и возвращает data.
- Задача
- Решение
- Обсуждение
ReadThroughChain: транзитивность
GolangРешение
func readThroughChain() int {
var data int
ab := make(chan struct{})
bc := make(chan struct{})
go func() {
data = 42
ab <- struct{}{}
}()
go func() {
<-ab
bc <- struct{}{}
}()
<-bc
return data
}