diff options
| author | Andrew G. Morgan <agm@google.com> | 2020-12-11 22:42:11 -0800 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2020-12-23 05:27:04 +0000 |
| commit | fd6ba1c8a23d8a3fffb6c475b21f78510152ef5c (patch) | |
| tree | 2ac5bbe2ea5584d0ccf54e3c12d4fb7ccb3e8fc1 /src/runtime/proc.go | |
| parent | b0b0d9828308368e9fbd59ec5de55801f568f720 (diff) | |
| download | go-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.go | 1 |
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 |
