go-concurrency-talk/figures/figure-7.go

18 lines
305 B
Go

func goroutine1() {
m.Lock()
- ch <- request //blocks // HL
+ select { // HL
+ case ch <- request: // HL
+ default: // HL
}
m.Unlock()
}
func goroutine2() {
for {
m.Lock() //blocks
m.Unlock()
request <- ch
}
}