Commit 0168c267 authored by Austin Clements's avatar Austin Clements

runtime: use only per-P gcWork

Currently most uses of gcWork use the per-P gcWork, but there are two
places that still use a stack-based gcWork. Simplify things by making
these instead use the per-P gcWork.

Change-Id: I712d012cce9dd5757c8541824e9641ac1c2a329c
Reviewed-on: https://go-review.googlesource.com/19636Reviewed-by: default avatarRick Hudson <rlh@golang.org>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 7b229001
......@@ -1555,8 +1555,8 @@ func gcMark(start_time int64) {
gchelperstart()
var gcw gcWork
gcDrain(&gcw, gcDrainBlock)
gcw := &getg().m.p.ptr().gcw
gcDrain(gcw, gcDrainBlock)
gcw.dispose()
gcMarkRootCheck()
......@@ -1798,8 +1798,8 @@ func gchelper() {
// Parallel mark over GC roots and heap
if gcphase == _GCmarktermination {
var gcw gcWork
gcDrain(&gcw, gcDrainBlock) // blocks in getfull
gcw := &_g_.m.p.ptr().gcw
gcDrain(gcw, gcDrainBlock) // blocks in getfull
gcw.dispose()
}
......
......@@ -44,14 +44,6 @@ func (wp wbufptr) ptr() *workbuf {
//
// A gcWork can be used on the stack as follows:
//
// var gcw gcWork
// disable preemption
// .. call gcw.put() to produce and gcw.get() to consume ..
// gcw.dispose()
// enable preemption
//
// Or from the per-P gcWork cache:
//
// (preemption must be disabled)
// gcw := &getg().m.p.ptr().gcw
// .. call gcw.put() to produce and gcw.get() to consume ..
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment