aboutsummaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/mgc.go8
1 files changed, 1 insertions, 7 deletions
diff --git a/src/runtime/mgc.go b/src/runtime/mgc.go
index bda8eadc9d..0bc5568442 100644
--- a/src/runtime/mgc.go
+++ b/src/runtime/mgc.go
@@ -1368,13 +1368,6 @@ func gcStart(trigger gcTrigger) {
work.pauseNS += now - work.pauseStart
work.tMark = now
})
-
- // Release the world sema before Gosched() in STW mode
- // because we will need to reacquire it later but before
- // this goroutine becomes runnable again, and we could
- // self-deadlock otherwise.
- semrelease(&worldsema)
-
// In STW mode, we could block the instant systemstack
// returns, so don't do anything important here. Make sure we
// block rather than returning to user code.
@@ -1382,6 +1375,7 @@ func gcStart(trigger gcTrigger) {
Gosched()
}
+ semrelease(&worldsema)
semrelease(&work.startSema)
}