diff options
Diffstat (limited to 'runtime/gc/collector/mark_sweep.cc')
-rw-r--r-- | runtime/gc/collector/mark_sweep.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/runtime/gc/collector/mark_sweep.cc b/runtime/gc/collector/mark_sweep.cc index e65d1f1..14eb80b 100644 --- a/runtime/gc/collector/mark_sweep.cc +++ b/runtime/gc/collector/mark_sweep.cc @@ -16,6 +16,7 @@ #include "mark_sweep.h" +#include <atomic> #include <functional> #include <numeric> #include <climits> @@ -600,7 +601,7 @@ class MarkStackTask : public Task { mirror::Object* ref = obj->GetFieldObject<mirror::Object>(offset); if (ref != nullptr && mark_sweep_->MarkObjectParallel(ref)) { if (kUseFinger) { - android_memory_barrier(); + std::atomic_thread_fence(std::memory_order_seq_cst); if (reinterpret_cast<uintptr_t>(ref) >= static_cast<uintptr_t>(mark_sweep_->atomic_finger_.LoadRelaxed())) { return; |