• Russ Cox's avatar
    runtime, sync/atomic: add write barrier for atomic write of pointer · 7b4df8f0
    Russ Cox authored
    Add write barrier to atomic operations manipulating pointers.
    
    In general an atomic write of a pointer word may indicate racy accesses,
    so there is no strictly safe way to attempt to keep the shadow copy
    in sync with the real one. Instead, mark the shadow copy as not used.
    
    Redirect sync/atomic pointer routines back to the runtime ones,
    so that there is only one copy of the write barrier and shadow logic.
    In time we might consider doing this for most of the sync/atomic
    functions, but for now only the pointer routines need that treatment.
    
    Found with GODEBUG=wbshadow=1 mode.
    Eventually that will run automatically, but right now
    it still detects other missing write barriers.
    
    Change-Id: I852936b9a111a6cb9079cfaf6bd78b43016c0242
    Reviewed-on: https://go-review.googlesource.com/2066Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
    Reviewed-by: 's avatarAustin Clements <austin@google.com>
    7b4df8f0
asm_amd64.s 2.46 KB