summaryrefslogtreecommitdiff
path: root/src/lib/container/iterable.go
diff options
context:
space:
mode:
authorDavid Symonds <dsymonds@golang.org>2009-04-20 00:42:08 -0700
committerDavid Symonds <dsymonds@golang.org>2009-04-20 00:42:08 -0700
commit796accfa71507b7fe90e4ebc35f189c6fb413ae6 (patch)
tree57895547d034e5093e2bd24183b6c931f12fbe6a /src/lib/container/iterable.go
parent476cc3254015d18836029b9e871fb690d27e2ac0 (diff)
downloadgolang-796accfa71507b7fe90e4ebc35f189c6fb413ae6.tar.gz
Use the mutex in exvar.Set since map access is not atomic.
Imagine your var has a value of zero. If you have a goroutine calling Set(5), and another calling Increment(+1), then you only want one of these outcomes: - Set completes first, and then Increment occurs => 6 - Increment completes first, and then Set occurs => 5 However, you could get a sequence: - read (for Increment) 0 - set (for Set) 5 - write (for Increment) 1 This results in a value of 1, which is undesirable. Kudos to dnadasi for catching this. R=r APPROVED=r DELTA=3 (3 added, 0 deleted, 0 changed) OCL=27625 CL=27625
Diffstat (limited to 'src/lib/container/iterable.go')
0 files changed, 0 insertions, 0 deletions