src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp

Print this page
rev 4973 : imported patch checkpointing.diff

@@ -27,10 +27,12 @@
 #include "gc_implementation/g1/heapRegionRemSet.hpp"
 #include "runtime/atomic.hpp"
 #include "runtime/mutexLocker.hpp"
 #include "runtime/safepoint.hpp"
 #include "runtime/thread.inline.hpp"
+#include "runtime/vmThread.hpp"
+#include "runtime/vm_operations.hpp"
 #include "utilities/workgroup.hpp"
 
 bool DirtyCardQueue::apply_closure(CardTableEntryClosure* cl,
                                    bool consume,
                                    size_t worker_i) {

@@ -113,11 +115,13 @@
                                                     worker_i);
   guarantee(b, "Should not be interrupted.");
 }
 
 bool DirtyCardQueueSet::mut_process_buffer(void** buf) {
-
+  VMThread::execute (new VM_ForceAsyncSafepoint());
+  return false;
+#if 0
   // Used to determine if we had already claimed a par_id
   // before entering this method.
   bool already_claimed = false;
 
   // We grab the current JavaThread.

@@ -156,10 +160,11 @@
       // and set the claimed_id in the thread to -1
       thread->set_claimed_par_id(-1);
     }
   }
   return b;
+#endif
 }
 
 
 BufferNode*
 DirtyCardQueueSet::get_completed_buffer(int stop_at) {