< prev index next >

src/hotspot/share/runtime/sweeper.cpp

Print this page
rev 57079 : [mq]: handshake-logs

@@ -309,10 +309,20 @@
   }
 
   return &set_hotness_closure;
 }
 
+class NMethodMarkingHandshake : public HandshakeOperation {
+  NMethodMarkingThreadClosure* _cl;
+ public:
+  NMethodMarkingHandshake(NMethodMarkingThreadClosure* cl) : _cl(cl) {}
+  const char* name() { return "NMethodMarking";};
+  void do_thread(JavaThread* jt) {
+    _cl->do_thread(jt);
+  }
+};
+
 /**
   * This function triggers a VM operation that does stack scanning of active
   * methods. Stack scanning is mandatory for the sweeper to make progress.
   */
 void NMethodSweeper::do_stack_scanning() {

@@ -324,11 +334,12 @@
         MutexLocker ccl(CodeCache_lock, Mutex::_no_safepoint_check_flag);
         code_cl = prepare_mark_active_nmethods();
       }
       if (code_cl != NULL) {
         NMethodMarkingThreadClosure tcl(code_cl);
-        Handshake::execute(&tcl);
+        NMethodMarkingHandshake nm_hs(&tcl);
+        Handshake::execute(&nm_hs);
       }
     } else {
       VM_MarkActiveNMethods op;
       VMThread::execute(&op);
     }
< prev index next >