< prev index next >

src/share/vm/runtime/thread.cpp

Print this page
rev 12168 : [mq]: syncbug.patch

@@ -1969,10 +1969,12 @@
 
   DirtyCardQueue& dirty_queue = dirty_card_queue();
   // The dirty card queue should have been constructed with its
   // active field set to true.
   assert(dirty_queue.is_active(), "dirty card queue should be active");
+
+  _evacuation_in_progress = _evacuation_in_progress_global;
 }
 
 bool JavaThread::evacuation_in_progress() const {
   return _evacuation_in_progress;
 }

@@ -1980,12 +1982,13 @@
 void JavaThread::set_evacuation_in_progress(bool in_prog) {
   _evacuation_in_progress = in_prog;
 }
 
 void JavaThread::set_evacuation_in_progress_all_threads(bool in_prog) {
+  assert(Threads_lock->owned_by_self(), "must hold Threads_lock");
   _evacuation_in_progress_global = in_prog;
-  for (JavaThread* t = Threads::first(); t; t = t->next()) {
+  for (JavaThread* t = Threads::first(); t != NULL; t = t->next()) {
     t->set_evacuation_in_progress(in_prog);
   }
 }
 #endif // INCLUDE_ALL_GCS
 
< prev index next >