fix typos in lecture
This commit is contained in:
parent
5f2b0f52fe
commit
1687b7bf8c
1 changed files with 6 additions and 5 deletions
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue