fix typos in lecture

This commit is contained in:
Artem Garkavy 2022-03-27 21:33:10 +03:00 committed by Arseny Balobanov
parent 5f2b0f52fe
commit 1687b7bf8c

View file

@ -17,7 +17,7 @@ Concurrency with Shared Memory
a := 1 a := 1
a += 1 a += 1
- Посылка значения из канал _happens_before_ получения этого значения из канала. - Посылка значения из канала _happens_before_ получения этого значения из канала.
- Два события A и B _происходят_одновременно_ (_are_concurrent_), если нельзя сказать что одно случилось раньше другого. - Два события A и B _происходят_одновременно_ (_are_concurrent_), если нельзя сказать что одно случилось раньше другого.
@ -312,18 +312,19 @@ Concurrency with Shared Memory
func (once *Once) Do(f func()) { func (once *Once) Do(f func()) {
once.mu.Lock() once.mu.Lock()
defer once.mu.Unlock() defer once.mu.Unlock()
if done { if once.done {
return return
} }
if running { if once.running {
once.cond.Wait() // releases and acquires mutex once.cond.Wait() // releases and acquires mutex
return return
} }
running = true
once.running = true
once.mu.Unlock() once.mu.Unlock()
f() f()
once.mu.Lock() once.mu.Lock()
done = true once.done = true
once.cond.Broadcast() once.cond.Broadcast()
} }