aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2020-03-26 09:13:11 -0700
committerIan Lance Taylor <iant@golang.org>2020-03-27 20:29:31 +0000
commit78a45d8b4592dbd38057a2e9af83c9cf9d62ddc9 (patch)
tree7acdcae36d2e85d5a3de6e49a0af4fbcf8f8f83d /src
parentf5558bb2f580ed40374a98e8db6fd58ae79f6e1d (diff)
downloadgo-78a45d8b4592dbd38057a2e9af83c9cf9d62ddc9.tar.xz
runtime: lock mtxpoll in AIX netpollBreak
netpollBreak calls netpollwakeup, and netpollwakeup expects the mtxpoll lock to be held, so that it has exclusive access to pendingUpdates. Not acquiring the lock was a mistake in CL 171824. Fortunately it rarely matters in practice. Change-Id: I32962ec2575c846ef3d6a91a4d821b2ff02d983c Reviewed-on: https://go-review.googlesource.com/c/go/+/225618 Reviewed-by: Michael Knyszek <mknyszek@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/runtime/netpoll_aix.go2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/runtime/netpoll_aix.go b/src/runtime/netpoll_aix.go
index c936fbb70f..61becc247e 100644
--- a/src/runtime/netpoll_aix.go
+++ b/src/runtime/netpoll_aix.go
@@ -130,7 +130,9 @@ func netpollarm(pd *pollDesc, mode int) {
// netpollBreak interrupts a poll.
func netpollBreak() {
+ lock(&mtxpoll)
netpollwakeup()
+ unlock(&mtxpoll)
}
// netpoll checks for ready network connections.