mirror of
https://github.com/golang/go
synced 2024-11-24 09:00:13 -07:00
runtime: recursively disallow write barriers in sysmon
sysmon runs without a P. This means it can't interact with the garbage collector, so write barriers not allowed in anything that sysmon does. Fixes #10600. Change-Id: I9de1283900dadee4f72e2ebfc8787123e382ae88 Reviewed-on: https://go-review.googlesource.com/17006 Run-TryBot: Austin Clements <austin@google.com> Reviewed-by: Dmitry Vyukov <dvyukov@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
402e37d4a9
commit
d2c81ad847
@ -3321,6 +3321,9 @@ func checkdead() {
|
||||
// This is a variable for testing purposes. It normally doesn't change.
|
||||
var forcegcperiod int64 = 2 * 60 * 1e9
|
||||
|
||||
// Always runs without a P, so write barriers are not allowed.
|
||||
//
|
||||
//go:nowritebarrierrec
|
||||
func sysmon() {
|
||||
// If a heap span goes unused for 5 minutes after a garbage collection,
|
||||
// we hand it back to the operating system.
|
||||
|
Loading…
Reference in New Issue
Block a user