• Austin Clements's avatar
    runtime: poison the write barrier buffer during flushing · fe2feb97
    Austin Clements authored
    Currently we reset the write barrier buffer before processing the
    pointers in it. As a result, if there were any write barriers in the
    code that processes the buffer, it would corrupt the write barrier
    buffer and cause us to mark objects without later scanning them.
    
    As far as I can tell, this shouldn't be happening, but rather than
    relying on hope (and incomplete static analysis), this CL changes
    wbBufFlush1 to poison the write barrier buffer while processing it,
    and only reset it once it's done.
    
    Updates #27993. (Unlike many of the other changes for this issue,
    there's no need to roll back this CL. It's a good change in its own
    right.)
    
    Change-Id: I6d2d9f1b69b89438438b9ee624f3fff9f009e29d
    Reviewed-on: https://go-review.googlesource.com/c/154537
    Run-TryBot: Austin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarMichael Knyszek <mknyszek@google.com>
    fe2feb97
Name
Last commit
Last update
.github Loading commit data...
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...