diff --git a/runtime/vm/bitfield.h b/runtime/vm/bitfield.h index 910f17866ad..98cb25fcce7 100644 --- a/runtime/vm/bitfield.h +++ b/runtime/vm/bitfield.h @@ -10,6 +10,7 @@ #include "platform/assert.h" #include "platform/atomic.h" #include "platform/globals.h" +#include "platform/no_tsan.h" #include "platform/thread_sanitizer.h" #include "platform/utils.h" @@ -114,9 +115,9 @@ class AtomicBitFieldContainer { } template - NO_SANITIZE_THREAD bool TryClearIgnoreRace() { + bool TryClearIgnoreRace() { T mask = ~TargetBitField::encode(true); - T old_field = field_.fetch_and(mask, std::memory_order_relaxed); + T old_field = FetchAndRelaxedIgnoreRace(&field_, mask); return TargetBitField::decode(old_field); }