src/hotspot/share/prims/whitebox.cpp
changeset 58409 a595e67d6683
parent 58375 a1eba2e37671
child 58545 725244418646
equal deleted inserted replaced
58407:b14643d898d3 58409:a595e67d6683
  1741   Mutex::SafepointCheckFlag sfpt_check_attempted = attemptedNoSafepointValue ?
  1741   Mutex::SafepointCheckFlag sfpt_check_attempted = attemptedNoSafepointValue ?
  1742                                            Mutex::_no_safepoint_check_flag :
  1742                                            Mutex::_no_safepoint_check_flag :
  1743                                            Mutex::_safepoint_check_flag;
  1743                                            Mutex::_safepoint_check_flag;
  1744   MutexLocker ml(new Mutex(Mutex::leaf, "SFPT_Test_lock", true, sfpt_check_required),
  1744   MutexLocker ml(new Mutex(Mutex::leaf, "SFPT_Test_lock", true, sfpt_check_required),
  1745                  sfpt_check_attempted);
  1745                  sfpt_check_attempted);
       
  1746 WB_END
       
  1747 
       
  1748 WB_ENTRY(void, WB_AssertSpecialLock(JNIEnv* env, jobject o, jboolean allowVMBlock, jboolean safepointCheck))
       
  1749   // Create a special lock violating condition in value
       
  1750   Mutex::SafepointCheckRequired sfpt_check_required = safepointCheck ?
       
  1751                                            Mutex::_safepoint_check_always :
       
  1752                                            Mutex::_safepoint_check_never;
       
  1753   Mutex::SafepointCheckFlag safepoint_check = safepointCheck ?
       
  1754                                            Monitor::_safepoint_check_flag :
       
  1755                                            Monitor::_no_safepoint_check_flag;
       
  1756 
       
  1757   MutexLocker ml(new Mutex(Mutex::special, "SpecialTest_lock", allowVMBlock, sfpt_check_required), safepoint_check);
       
  1758   // If the lock above succeeds, try to safepoint to test the NSV implied with this special lock.
       
  1759   ThreadBlockInVM tbivm(JavaThread::current());
  1746 WB_END
  1760 WB_END
  1747 
  1761 
  1748 WB_ENTRY(jboolean, WB_IsMonitorInflated(JNIEnv* env, jobject wb, jobject obj))
  1762 WB_ENTRY(jboolean, WB_IsMonitorInflated(JNIEnv* env, jobject wb, jobject obj))
  1749   oop obj_oop = JNIHandles::resolve(obj);
  1763   oop obj_oop = JNIHandles::resolve(obj);
  1750   return (jboolean) obj_oop->mark().has_monitor();
  1764   return (jboolean) obj_oop->mark().has_monitor();
  2320   {CC"AddModuleExportsToAllUnnamed", CC"(Ljava/lang/Object;Ljava/lang/String;)V",
  2334   {CC"AddModuleExportsToAllUnnamed", CC"(Ljava/lang/Object;Ljava/lang/String;)V",
  2321                                                       (void*)&WB_AddModuleExportsToAllUnnamed },
  2335                                                       (void*)&WB_AddModuleExportsToAllUnnamed },
  2322   {CC"AddModuleExportsToAll", CC"(Ljava/lang/Object;Ljava/lang/String;)V",
  2336   {CC"AddModuleExportsToAll", CC"(Ljava/lang/Object;Ljava/lang/String;)V",
  2323                                                       (void*)&WB_AddModuleExportsToAll },
  2337                                                       (void*)&WB_AddModuleExportsToAll },
  2324   {CC"assertMatchingSafepointCalls", CC"(ZZ)V",       (void*)&WB_AssertMatchingSafepointCalls },
  2338   {CC"assertMatchingSafepointCalls", CC"(ZZ)V",       (void*)&WB_AssertMatchingSafepointCalls },
       
  2339   {CC"assertSpecialLock",  CC"(ZZ)V",                 (void*)&WB_AssertSpecialLock },
  2325   {CC"isMonitorInflated0", CC"(Ljava/lang/Object;)Z", (void*)&WB_IsMonitorInflated  },
  2340   {CC"isMonitorInflated0", CC"(Ljava/lang/Object;)Z", (void*)&WB_IsMonitorInflated  },
  2326   {CC"forceSafepoint",     CC"()V",                   (void*)&WB_ForceSafepoint     },
  2341   {CC"forceSafepoint",     CC"()V",                   (void*)&WB_ForceSafepoint     },
  2327   {CC"getConstantPool0",   CC"(Ljava/lang/Class;)J",  (void*)&WB_GetConstantPool    },
  2342   {CC"getConstantPool0",   CC"(Ljava/lang/Class;)J",  (void*)&WB_GetConstantPool    },
  2328   {CC"getConstantPoolCacheIndexTag0", CC"()I",  (void*)&WB_GetConstantPoolCacheIndexTag},
  2343   {CC"getConstantPoolCacheIndexTag0", CC"()I",  (void*)&WB_GetConstantPoolCacheIndexTag},
  2329   {CC"getConstantPoolCacheLength0", CC"(Ljava/lang/Class;)I",  (void*)&WB_GetConstantPoolCacheLength},
  2344   {CC"getConstantPoolCacheLength0", CC"(Ljava/lang/Class;)I",  (void*)&WB_GetConstantPoolCacheLength},