mirror of
https://github.com/golang/go
synced 2024-09-30 14:28:33 -06:00
runtime: unblock SIGUSR1 for TestPreemptM
TestPreemptM tests signal delivery using SIGUSR1, but (for unknown reasons) SIGUSR1 is blocked by default on android/arm and android/arm64, causing the test to fail. This fixes the test by ensuring that SIGUSR1 is unblocked for this test. Updates #10958, #24543. Change-Id: I9f81fbab53f96c74622aabcb6f5276f79e2b6d33 Reviewed-on: https://go-review.googlesource.com/c/go/+/203957 Run-TryBot: Austin Clements <austin@google.com> Reviewed-by: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
ac346a5fd9
commit
b6bdf4587f
@ -33,6 +33,10 @@ var waitForSigusr1 struct {
|
||||
// the ID of the M the SIGUSR1 was received on. If no SIGUSR1 is
|
||||
// received for timeoutNS nanoseconds, it returns -1.
|
||||
func WaitForSigusr1(ready func(mp *M), timeoutNS int64) (int64, int64) {
|
||||
lockOSThread()
|
||||
// Make sure we can receive SIGUSR1.
|
||||
unblocksig(_SIGUSR1)
|
||||
|
||||
mp := getg().m
|
||||
testSigusr1 = func(gp *g) bool {
|
||||
waitForSigusr1.mp = gp.m
|
||||
@ -46,6 +50,8 @@ func WaitForSigusr1(ready func(mp *M), timeoutNS int64) (int64, int64) {
|
||||
waitForSigusr1.mp = nil
|
||||
testSigusr1 = nil
|
||||
|
||||
unlockOSThread()
|
||||
|
||||
if !ok {
|
||||
return -1, -1
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user