]> Cypherpunks repositories - gostls13.git/commit
runtime: avoid redundant scans
authorRick Hudson <rlh@golang.org>
Mon, 26 Jan 2015 18:51:39 +0000 (13:51 -0500)
committerRick Hudson <rlh@golang.org>
Wed, 28 Jan 2015 20:05:55 +0000 (20:05 +0000)
commit13aff7831d32c80b98ede611f1ffb0476f16ec51
tree1d1e834da6c48bf3f2e2e94469104313537355ba
parent8332f807853d9aa47c7aa04bf3501eae88180170
runtime: avoid redundant scans

During a concurrent GC stacks are scanned in
an initial scan phase informing the GC of all
pointers on the stack. The GC only needs to rescan
the stack if it potentially changes which can only
happen if the goroutine runs.
This CL tracks whether the Goroutine has run
since it was last scanned and thus may have changed
its stack. If necessary the stack is rescanned.

Change-Id: I5fb1c4338d42e3f61ab56c9beb63b7b2da25f4f1
Reviewed-on: https://go-review.googlesource.com/3275
Reviewed-by: Russ Cox <rsc@golang.org>
src/runtime/malloc.go
src/runtime/mgc.go
src/runtime/proc1.go
src/runtime/runtime2.go