src/share/vm/runtime/vm_operations.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/runtime

src/share/vm/runtime/vm_operations.cpp

Print this page




  94   // Note that this now allows multiple ThreadDeath exceptions to be
  95   // thrown at a thread.
  96   if (target != NULL) {
  97     // the thread has run and is not already in the process of exiting
  98     target->send_thread_stop(throwable());
  99   }
 100 }
 101 
 102 void VM_Deoptimize::doit() {
 103   // We do not want any GCs to happen while we are in the middle of this VM operation
 104   ResourceMark rm;
 105   DeoptimizationMarker dm;
 106 
 107   // Deoptimize all activations depending on marked nmethods
 108   Deoptimization::deoptimize_dependents();
 109 
 110   // Make the dependent methods zombies
 111   CodeCache::make_marked_nmethods_zombies();
 112 }
 113 



 114 
 115 VM_DeoptimizeFrame::VM_DeoptimizeFrame(JavaThread* thread, intptr_t* id) {
 116   _thread = thread;
 117   _id     = id;
 118 }
 119 
 120 
 121 void VM_DeoptimizeFrame::doit() {
 122   Deoptimization::deoptimize_frame_internal(_thread, _id);
 123 }
 124 
 125 
 126 #ifndef PRODUCT
 127 
 128 void VM_DeoptimizeAll::doit() {
 129   DeoptimizationMarker dm;
 130   // deoptimize all java threads in the system
 131   if (DeoptimizeALot) {
 132     for (JavaThread* thread = Threads::first(); thread != NULL; thread = thread->next()) {
 133       if (thread->has_last_Java_frame()) {




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


src/share/vm/runtime/vm_operations.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File