]> Cypherpunks repositories - gostls13.git/commit
runtime: enable preemption of mark termination goroutine
authorMichael Anthony Knyszek <mknyszek@google.com>
Thu, 6 Dec 2018 21:51:51 +0000 (21:51 +0000)
committerMichael Knyszek <mknyszek@google.com>
Fri, 7 Dec 2018 16:42:49 +0000 (16:42 +0000)
commit578667f4b534974f28909dbc34bce7fe1686c5d3
tree9ed2526139acfc0e7f8e181c78f5ca1a79eca847
parentf604b6ce3877bf7d612c3aaaa429a304bd2fa383
runtime: enable preemption of mark termination goroutine

A mark worker goroutine may attempt to preempt the mark termination
goroutine to scan its stack while the mark termination goroutine is
trying to preempt that worker to flush its work buffer, in rare
cases.

This change makes it so that, like a worker goroutine, the mark
termination goroutine stack is preemptible while it is on the
system stack, attempting to preempt others.

Fixes #28695.

Change-Id: I23bbb191f4fdad293e8a70befd51c9175f8a1171
Reviewed-on: https://go-review.googlesource.com/c/153077
Reviewed-by: Rick Hudson <rlh@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
src/runtime/mgc.go