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}, |