< prev index next >

src/share/vm/runtime/vm_operations.cpp

Print this page




  92 
  93 void VM_ThreadStop::doit() {
  94   assert(SafepointSynchronize::is_at_safepoint(), "must be at a safepoint");
  95   JavaThread* target = java_lang_Thread::thread(target_thread());
  96   // Note that this now allows multiple ThreadDeath exceptions to be
  97   // thrown at a thread.
  98   if (target != NULL) {
  99     // the thread has run and is not already in the process of exiting
 100     target->send_thread_stop(throwable());
 101   }
 102 }
 103 
 104 void VM_Deoptimize::doit() {
 105   // We do not want any GCs to happen while we are in the middle of this VM operation
 106   ResourceMark rm;
 107   DeoptimizationMarker dm;
 108 
 109   // Deoptimize all activations depending on marked nmethods
 110   Deoptimization::deoptimize_dependents();
 111 
 112   // Make the dependent methods zombies
 113   CodeCache::make_marked_nmethods_zombies();
 114 }
 115 
 116 void VM_MarkActiveNMethods::doit() {
 117   NMethodSweeper::mark_active_nmethods();
 118 }
 119 
 120 VM_DeoptimizeFrame::VM_DeoptimizeFrame(JavaThread* thread, intptr_t* id) {
 121   _thread = thread;
 122   _id     = id;
 123 }
 124 
 125 
 126 void VM_DeoptimizeFrame::doit() {
 127   Deoptimization::deoptimize_frame_internal(_thread, _id);
 128 }
 129 
 130 
 131 #ifndef PRODUCT
 132 
 133 void VM_DeoptimizeAll::doit() {




  92 
  93 void VM_ThreadStop::doit() {
  94   assert(SafepointSynchronize::is_at_safepoint(), "must be at a safepoint");
  95   JavaThread* target = java_lang_Thread::thread(target_thread());
  96   // Note that this now allows multiple ThreadDeath exceptions to be
  97   // thrown at a thread.
  98   if (target != NULL) {
  99     // the thread has run and is not already in the process of exiting
 100     target->send_thread_stop(throwable());
 101   }
 102 }
 103 
 104 void VM_Deoptimize::doit() {
 105   // We do not want any GCs to happen while we are in the middle of this VM operation
 106   ResourceMark rm;
 107   DeoptimizationMarker dm;
 108 
 109   // Deoptimize all activations depending on marked nmethods
 110   Deoptimization::deoptimize_dependents();
 111 
 112   // Make the dependent methods not entrant
 113   CodeCache::make_marked_nmethods_not_entrant();
 114 }
 115 
 116 void VM_MarkActiveNMethods::doit() {
 117   NMethodSweeper::mark_active_nmethods();
 118 }
 119 
 120 VM_DeoptimizeFrame::VM_DeoptimizeFrame(JavaThread* thread, intptr_t* id) {
 121   _thread = thread;
 122   _id     = id;
 123 }
 124 
 125 
 126 void VM_DeoptimizeFrame::doit() {
 127   Deoptimization::deoptimize_frame_internal(_thread, _id);
 128 }
 129 
 130 
 131 #ifndef PRODUCT
 132 
 133 void VM_DeoptimizeAll::doit() {


< prev index next >