aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/proc.go
diff options
context:
space:
mode:
authorAndrew G. Morgan <agm@google.com>2020-12-11 22:42:11 -0800
committerIan Lance Taylor <iant@golang.org>2020-12-23 05:27:04 +0000
commitfd6ba1c8a23d8a3fffb6c475b21f78510152ef5c (patch)
tree2ac5bbe2ea5584d0ccf54e3c12d4fb7ccb3e8fc1 /src/runtime/proc.go
parentb0b0d9828308368e9fbd59ec5de55801f568f720 (diff)
downloadgo-fd6ba1c8a23d8a3fffb6c475b21f78510152ef5c.tar.xz
os/signal: fix a deadlock with syscall.AllThreadsSyscall() use
The syscall.AllThreadsSyscall() fixup mechanism needs to cooperate with signal handling to ensure a notetsleepg() thread can wake up to run the mDoFixup() function. Fixes #43149 Change-Id: I6651b25bc44a4de47d3fb71d0293d51aef8b79c7 Reviewed-on: https://go-review.googlesource.com/c/go/+/277434 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Trust: Austin Clements <austin@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/runtime/proc.go')
-rw-r--r--src/runtime/proc.go1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/runtime/proc.go b/src/runtime/proc.go
index 592d621241..ca78587aad 100644
--- a/src/runtime/proc.go
+++ b/src/runtime/proc.go
@@ -1515,6 +1515,7 @@ func syscall_runtime_doAllThreadsSyscall(fn func(bool) bool) {
if netpollinited() {
netpollBreak()
}
+ sigRecvPrepareForFixup()
_g_ := getg()
if raceenabled {
// For m's running without racectx, we loan out the