mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: accept timeout from non-timeout semaphore wait on OS X
Looking at the kernel sources, I don't see how this is possible. But obviously it is. Just try again. Fixes #17161. Change-Id: Iea7d53f7cf75944792d2f75a0d07129831c7bcdb Reviewed-on: https://go-review.googlesource.com/31823 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
b4ce38ec57
commit
71cf409dbd
1 changed files with 4 additions and 1 deletions
|
|
@ -414,7 +414,10 @@ func semasleep1(ns int64) int32 {
|
|||
if r == 0 {
|
||||
break
|
||||
}
|
||||
if r == _KERN_ABORTED { // interrupted
|
||||
// Note: We don't know how this call (with no timeout) can get _KERN_OPERATION_TIMED_OUT,
|
||||
// but it does reliably, though at a very low rate, on OS X 10.8, 10.9, 10.10, and 10.11.
|
||||
// See golang.org/issue/17161.
|
||||
if r == _KERN_ABORTED || r == _KERN_OPERATION_TIMED_OUT { // interrupted
|
||||
continue
|
||||
}
|
||||
macherror(r, "semaphore_wait")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue