diff options
Diffstat (limited to 'src/runtime/proc.go')
-rw-r--r-- | src/runtime/proc.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/runtime/proc.go b/src/runtime/proc.go index 756ce63c24..f41672de73 100644 --- a/src/runtime/proc.go +++ b/src/runtime/proc.go @@ -240,6 +240,16 @@ func Gosched() { mcall(gosched_m) } +var alwaysFalse bool + +// goschedguarded does nothing, but is written in a way that guarantees a preemption check in its prologue. +// Calls to this function are inserted by the compiler in otherwise uninterruptible loops (see insertLoopReschedChecks). +func goschedguarded() { + if alwaysFalse { + goschedguarded() + } +} + // Puts the current goroutine into a waiting state and calls unlockf. // If unlockf returns false, the goroutine is resumed. // unlockf must not access this G's stack, as it may be moved between |