diff options
Diffstat (limited to 'src/runtime')
| -rw-r--r-- | src/runtime/mbitmap.go | 4 | ||||
| -rw-r--r-- | src/runtime/mgcmark.go | 3 |
2 files changed, 2 insertions, 5 deletions
diff --git a/src/runtime/mbitmap.go b/src/runtime/mbitmap.go index 87fa027b4e..4854c0e632 100644 --- a/src/runtime/mbitmap.go +++ b/src/runtime/mbitmap.go @@ -283,9 +283,7 @@ func (m markBits) isMarked() bool { return *m.bytep&m.mask != 0 } -// setMarked sets the marked bit in the markbits, atomically. Some compilers -// are not able to inline atomic.Or8 function so if it appears as a hot spot consider -// inlining it manually. +// setMarked sets the marked bit in the markbits, atomically. func (m markBits) setMarked() { // Might be racing with other updates, so use atomic update always. // We used to be clever here and use a non-atomic update in certain diff --git a/src/runtime/mgcmark.go b/src/runtime/mgcmark.go index d4dcfb6cb9..14f09700ee 100644 --- a/src/runtime/mgcmark.go +++ b/src/runtime/mgcmark.go @@ -1228,8 +1228,7 @@ func greyobject(obj, base, off uintptr, span *mspan, gcw *gcWork, objIndex uintp if mbits.isMarked() { return } - // mbits.setMarked() // Avoid extra call overhead with manual inlining. - atomic.Or8(mbits.bytep, mbits.mask) + mbits.setMarked() // If this is a noscan object, fast-track it to black // instead of greying it. if span.spanclass.noscan() { |
