< prev index next >

src/hotspot/share/gc/shared/workgroup.cpp

Print this page

        

@@ -431,10 +431,12 @@
   assert(t < _n_tasks, "bad task id.");
   uint old = _tasks[t];
   if (old == 0) {
     old = Atomic::cmpxchg(1u, &_tasks[t], 0u);
   }
+
+  DEBUG_ONLY(OrderAccess::fence()); // Prevent below load from floating up.
   assert(_tasks[t] == 1, "What else?");
   bool res = old == 0;
 #ifdef ASSERT
   if (res) {
     assert(_claimed < _n_tasks, "Too many tasks claimed; missing clear?");
< prev index next >