mirror of https://github.com/golang/go.git
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/19636 Reviewed-by: Rick Hudson <rlh@golang.org> Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
7b229001e7
commit
0168c2676f
|
|
@ -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 ..
|
||||
|
|
|
|||
Loading…
Reference in New Issue