mirror of
https://github.com/golang/go
synced 2024-11-26 07:17:59 -07:00
doc: fix happens-before rules for buffered channels
The current wording is reversed in 2 places. Not sure how it got 4 LGTMs (mine was there as well). Update #6242. LGTM=dan.kortschak, r, rsc R=golang-codereviews, 0xjnml, dan.kortschak, r, rsc CC=golang-codereviews https://golang.org/cl/101980047
This commit is contained in:
parent
ae1b5c7bd9
commit
81a93ef24a
@ -1,6 +1,6 @@
|
|||||||
<!--{
|
<!--{
|
||||||
"Title": "The Go Memory Model",
|
"Title": "The Go Memory Model",
|
||||||
"Subtitle": "Version of March 6, 2012",
|
"Subtitle": "Version of May 31, 2014",
|
||||||
"Path": "/ref/mem"
|
"Path": "/ref/mem"
|
||||||
}-->
|
}-->
|
||||||
|
|
||||||
@ -275,17 +275,17 @@ crash, or do something else.)
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="rule">
|
<p class="rule">
|
||||||
The <i>k</i>th send on a channel with capacity <i>C</i> happens before the <i>k</i>+<i>C</i>th receive from that channel completes.
|
The <i>k</i>th receive on a channel with capacity <i>C</i> happens before the <i>k</i>+<i>C</i>th send from that channel completes.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
This rule generalizes the previous rule to buffered channels.
|
This rule generalizes the previous rule to buffered channels.
|
||||||
It allows a counting semaphore to be modeled by a buffered channel:
|
It allows a counting semaphore to be modeled by a buffered channel:
|
||||||
the number of items in the channel corresponds to the semaphore count,
|
the number of items in the channel corresponds to the number of active uses,
|
||||||
the capacity of the channel corresponds to the semaphore maximum,
|
the capacity of the channel corresponds to the maximum number of simultaneous uses,
|
||||||
sending an item acquires the semaphore, and receiving an item releases
|
sending an item acquires the semaphore, and receiving an item releases
|
||||||
the semaphore.
|
the semaphore.
|
||||||
This is a common idiom for rate-limiting work.
|
This is a common idiom for limiting concurrency.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
Loading…
Reference in New Issue
Block a user