452 * 453 * It is important that this directory is well-known and the 454 * same for all VM instances. It cannot be affected by configuration 455 * variables such as java.io.tmpdir. 456 */ 457 JVM_ENTRY(jstring, JVM_GetTemporaryDirectory(JNIEnv *env)) 458 JVMWrapper("JVM_GetTemporaryDirectory"); 459 HandleMark hm(THREAD); 460 const char* temp_dir = os::get_temp_directory(); 461 Handle h = java_lang_String::create_from_platform_dependent_str(temp_dir, CHECK_NULL); 462 return (jstring) JNIHandles::make_local(env, h()); 463 JVM_END 464 465 466 // java.lang.Runtime ///////////////////////////////////////////////////////////////////////// 467 468 extern volatile jint vm_created; 469 470 JVM_ENTRY_NO_ENV(void, JVM_BeforeHalt()) 471 JVMWrapper("JVM_BeforeHalt"); 472 EventShutdown event; 473 if (event.should_commit()) { 474 event.set_reason("Shutdown requested from Java"); 475 event.commit(); 476 } 477 JVM_END 478 479 480 JVM_ENTRY_NO_ENV(void, JVM_Halt(jint code)) 481 before_exit(thread); 482 vm_exit(code); 483 JVM_END 484 485 486 JVM_ENTRY_NO_ENV(void, JVM_GC(void)) 487 JVMWrapper("JVM_GC"); 488 if (!DisableExplicitGC) { 489 Universe::heap()->collect(GCCause::_java_lang_system_gc); 490 } 491 JVM_END | 452 * 453 * It is important that this directory is well-known and the 454 * same for all VM instances. It cannot be affected by configuration 455 * variables such as java.io.tmpdir. 456 */ 457 JVM_ENTRY(jstring, JVM_GetTemporaryDirectory(JNIEnv *env)) 458 JVMWrapper("JVM_GetTemporaryDirectory"); 459 HandleMark hm(THREAD); 460 const char* temp_dir = os::get_temp_directory(); 461 Handle h = java_lang_String::create_from_platform_dependent_str(temp_dir, CHECK_NULL); 462 return (jstring) JNIHandles::make_local(env, h()); 463 JVM_END 464 465 466 // java.lang.Runtime ///////////////////////////////////////////////////////////////////////// 467 468 extern volatile jint vm_created; 469 470 JVM_ENTRY_NO_ENV(void, JVM_BeforeHalt()) 471 JVMWrapper("JVM_BeforeHalt"); 472 // Link all classes for dynamic CDS dumping before vm exit. 473 if (DynamicDumpSharedSpaces) { 474 MetaspaceShared::link_and_cleanup_shared_classes(false, THREAD); 475 } 476 EventShutdown event; 477 if (event.should_commit()) { 478 event.set_reason("Shutdown requested from Java"); 479 event.commit(); 480 } 481 JVM_END 482 483 484 JVM_ENTRY_NO_ENV(void, JVM_Halt(jint code)) 485 before_exit(thread); 486 vm_exit(code); 487 JVM_END 488 489 490 JVM_ENTRY_NO_ENV(void, JVM_GC(void)) 491 JVMWrapper("JVM_GC"); 492 if (!DisableExplicitGC) { 493 Universe::heap()->collect(GCCause::_java_lang_system_gc); 494 } 495 JVM_END |