470 JVMWrapper("JVM_BeforeHalt");
471 EventShutdown event;
472 if (event.should_commit()) {
473 event.set_reason("Shutdown requested from Java");
474 event.commit();
475 }
476 JVM_END
477
478
479 JVM_ENTRY_NO_ENV(void, JVM_Halt(jint code))
480 before_exit(thread);
481 vm_exit(code);
482 JVM_END
483
484
485 JVM_ENTRY_NO_ENV(void, JVM_GC(void))
486 JVMWrapper("JVM_GC");
487 if (!DisableExplicitGC) {
488 if (AsyncDeflateIdleMonitors) {
489 // AsyncDeflateIdleMonitors needs to know when System.gc() is
490 // called so any special clean up can be done at a safepoint.
491 ObjectSynchronizer::set_is_cleanup_requested(true);
492 }
493 Universe::heap()->collect(GCCause::_java_lang_system_gc);
494 }
495 JVM_END
496
497
498 JVM_LEAF(jlong, JVM_MaxObjectInspectionAge(void))
499 JVMWrapper("JVM_MaxObjectInspectionAge");
500 return Universe::heap()->millis_since_last_gc();
501 JVM_END
502
503
504 static inline jlong convert_size_t_to_jlong(size_t val) {
505 // In the 64-bit vm, a size_t can overflow a jlong (which is signed).
506 NOT_LP64 (return (jlong)val;)
507 LP64_ONLY(return (jlong)MIN2(val, (size_t)max_jlong);)
508 }
509
510 JVM_ENTRY_NO_ENV(jlong, JVM_TotalMemory(void))
511 JVMWrapper("JVM_TotalMemory");
|
470 JVMWrapper("JVM_BeforeHalt");
471 EventShutdown event;
472 if (event.should_commit()) {
473 event.set_reason("Shutdown requested from Java");
474 event.commit();
475 }
476 JVM_END
477
478
479 JVM_ENTRY_NO_ENV(void, JVM_Halt(jint code))
480 before_exit(thread);
481 vm_exit(code);
482 JVM_END
483
484
485 JVM_ENTRY_NO_ENV(void, JVM_GC(void))
486 JVMWrapper("JVM_GC");
487 if (!DisableExplicitGC) {
488 if (AsyncDeflateIdleMonitors) {
489 // AsyncDeflateIdleMonitors needs to know when System.gc() is
490 // called so any special deflation can be done at a safepoint.
491 ObjectSynchronizer::set_is_special_deflation_requested(true);
492 }
493 Universe::heap()->collect(GCCause::_java_lang_system_gc);
494 }
495 JVM_END
496
497
498 JVM_LEAF(jlong, JVM_MaxObjectInspectionAge(void))
499 JVMWrapper("JVM_MaxObjectInspectionAge");
500 return Universe::heap()->millis_since_last_gc();
501 JVM_END
502
503
504 static inline jlong convert_size_t_to_jlong(size_t val) {
505 // In the 64-bit vm, a size_t can overflow a jlong (which is signed).
506 NOT_LP64 (return (jlong)val;)
507 LP64_ONLY(return (jlong)MIN2(val, (size_t)max_jlong);)
508 }
509
510 JVM_ENTRY_NO_ENV(jlong, JVM_TotalMemory(void))
511 JVMWrapper("JVM_TotalMemory");
|