hotspot/src/share/vm/runtime/sharedRuntime.cpp
changeset 11637 030466036615
parent 11636 3c07b54482a5
child 11788 bef6166c683c
equal deleted inserted replaced
11636:3c07b54482a5 11637:030466036615
  2676     CompileBroker::handle_full_code_cache();
  2676     CompileBroker::handle_full_code_cache();
  2677   }
  2677   }
  2678   return nm;
  2678   return nm;
  2679 }
  2679 }
  2680 
  2680 
       
  2681 JRT_ENTRY_NO_ASYNC(void, SharedRuntime::block_for_jni_critical(JavaThread* thread))
       
  2682   assert(thread == JavaThread::current(), "must be");
       
  2683   // The code is about to enter a JNI lazy critical native method and
       
  2684   // _needs_gc is true, so if this thread is already in a critical
       
  2685   // section then just return, otherwise this thread should block
       
  2686   // until needs_gc has been cleared.
       
  2687   if (thread->in_critical()) {
       
  2688     return;
       
  2689   }
       
  2690   // Lock and unlock a critical section to give the system a chance to block
       
  2691   GC_locker::lock_critical(thread);
       
  2692   GC_locker::unlock_critical(thread);
       
  2693 JRT_END
       
  2694 
  2681 #ifdef HAVE_DTRACE_H
  2695 #ifdef HAVE_DTRACE_H
  2682 // Create a dtrace nmethod for this method.  The wrapper converts the
  2696 // Create a dtrace nmethod for this method.  The wrapper converts the
  2683 // java compiled calling convention to the native convention, makes a dummy call
  2697 // java compiled calling convention to the native convention, makes a dummy call
  2684 // (actually nops for the size of the call instruction, which become a trap if
  2698 // (actually nops for the size of the call instruction, which become a trap if
  2685 // probe is enabled). The returns to the caller. Since this all looks like a
  2699 // probe is enabled). The returns to the caller. Since this all looks like a