Skip to content
  • Ondřej Surý's avatar
    Update STALE and ANCIENT header attributes atomically · 81d4230e
    Ondřej Surý authored and Mark Andrews's avatar Mark Andrews committed
    The ThreadSanitizer found a data race when updating the stale header.
    Instead of trying to acquire the write lock and failing occasionally
    which would skew the statistics, the dns_rdatasetheader_t.attributes
    field has been promoted to use stdatomics.  Updating the attributes in
    the mark_header_ancient() and mark_header_stale() now uses the cmpxchg
    to update the attributes forfeiting the need to hold the write lock on
    the tree.  Please note that mark_header_ancient() still needs to hold
    the lock because .dirty is being updated in the same go.
    81d4230e