diff options
| author | Keith Randall <khr@golang.org> | 2014-10-18 21:02:49 -0700 |
|---|---|---|
| committer | Keith Randall <khr@golang.org> | 2014-10-18 21:02:49 -0700 |
| commit | e330cc16f477471c11f78a88c8a71a155a9ca8ec (patch) | |
| tree | 51c2cb1e68d797e654f375d49055e4bbdc381bb4 /src/encoding | |
| parent | 1cd78eedd092c9ec10f1b5c626b8bcd0298e065f (diff) | |
| download | go-e330cc16f477471c11f78a88c8a71a155a9ca8ec.tar.xz | |
runtime: dequeue the correct SudoG
select {
case <- c:
case <- c:
}
In this case, c.recvq lists two SudoGs which have the same G.
So we can't use the G as the key to dequeue the correct SudoG,
as that key is ambiguous. Dequeueing the wrong SudoG ends up
freeing a SudoG that is still in c.recvq.
The fix is to use the actual SudoG pointer as the key.
LGTM=dvyukov
R=rsc, bradfitz, dvyukov, khr
CC=austin, golang-codereviews
https://golang.org/cl/159040043
Diffstat (limited to 'src/encoding')
0 files changed, 0 insertions, 0 deletions
