diff options
| author | Russ Cox <rsc@golang.org> | 2022-01-26 16:53:50 -0500 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2022-06-06 20:48:03 +0000 |
| commit | a71ca3dfbd32faf351ff68bcc26a4d5abd9b06d7 (patch) | |
| tree | 0523f7aeacea7089b127ea3a8e5e58dded85fa0e /src/sync/pool.go | |
| parent | 3651a6117e9a88576615c29c4faf7eeec55d7691 (diff) | |
| download | go-a71ca3dfbd32faf351ff68bcc26a4d5abd9b06d7.tar.xz | |
runtime, sync, sync/atomic: document happens-before guarantees
A few of these are copied from the memory model doc.
Many are entirely new, following discussion on #47141.
See https://research.swtch.com/gomm for background.
The rule we are establishing is that each type that is meant
to help synchronize a Go program should document its
happens-before guarantees.
For #50859.
Change-Id: I947c40639b263abe67499fa74f68711a97873a39
Reviewed-on: https://go-review.googlesource.com/c/go/+/381316
Auto-Submit: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Roland Shoemaker <roland@golang.org>
Diffstat (limited to 'src/sync/pool.go')
| -rw-r--r-- | src/sync/pool.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/sync/pool.go b/src/sync/pool.go index ea142bb181..cf01e2e189 100644 --- a/src/sync/pool.go +++ b/src/sync/pool.go @@ -41,6 +41,11 @@ import ( // free list. // // A Pool must not be copied after first use. +// +// In the terminology of the Go memory model, a call to Put(x) “synchronizes before” +// a call to Get returning that same value x. +// Similarly, a call to New returning x “synchronizes before” +// a call to Get returning that same value x. type Pool struct { noCopy noCopy |
