< prev index next >

src/hotspot/share/runtime/init.cpp

Print this page




 178     if (log_is_enabled(Info, monitorinflation)) {
 179       // The ObjectMonitor subsystem uses perf counters so
 180       // do this before perfMemory_exit().
 181       // ObjectSynchronizer::finish_deflate_idle_monitors()'s call
 182       // to audit_and_print_stats() is done at the Debug level.
 183       ObjectSynchronizer::audit_and_print_stats(true /* on_exit */);
 184     }
 185     perfMemory_exit();
 186     SafepointTracing::statistics_exit_log();
 187     if (PrintStringTableStatistics) {
 188       SymbolTable::dump(tty);
 189       StringTable::dump(tty);
 190     }
 191     ostream_exit();
 192   }
 193 }
 194 
 195 static volatile bool _init_completed = false;
 196 
 197 bool is_init_completed() {
 198   return OrderAccess::load_acquire(&_init_completed);
 199 }
 200 
 201 void wait_init_completed() {
 202   MonitorLocker ml(InitCompleted_lock, Monitor::_no_safepoint_check_flag);
 203   while (!_init_completed) {
 204     ml.wait();
 205   }
 206 }
 207 
 208 void set_init_completed() {
 209   assert(Universe::is_fully_initialized(), "Should have completed initialization");
 210   MonitorLocker ml(InitCompleted_lock, Monitor::_no_safepoint_check_flag);
 211   OrderAccess::release_store(&_init_completed, true);
 212   ml.notify_all();
 213 }


 178     if (log_is_enabled(Info, monitorinflation)) {
 179       // The ObjectMonitor subsystem uses perf counters so
 180       // do this before perfMemory_exit().
 181       // ObjectSynchronizer::finish_deflate_idle_monitors()'s call
 182       // to audit_and_print_stats() is done at the Debug level.
 183       ObjectSynchronizer::audit_and_print_stats(true /* on_exit */);
 184     }
 185     perfMemory_exit();
 186     SafepointTracing::statistics_exit_log();
 187     if (PrintStringTableStatistics) {
 188       SymbolTable::dump(tty);
 189       StringTable::dump(tty);
 190     }
 191     ostream_exit();
 192   }
 193 }
 194 
 195 static volatile bool _init_completed = false;
 196 
 197 bool is_init_completed() {
 198   return Atomic::load_acquire(&_init_completed);
 199 }
 200 
 201 void wait_init_completed() {
 202   MonitorLocker ml(InitCompleted_lock, Monitor::_no_safepoint_check_flag);
 203   while (!_init_completed) {
 204     ml.wait();
 205   }
 206 }
 207 
 208 void set_init_completed() {
 209   assert(Universe::is_fully_initialized(), "Should have completed initialization");
 210   MonitorLocker ml(InitCompleted_lock, Monitor::_no_safepoint_check_flag);
 211   Atomic::release_store(&_init_completed, true);
 212   ml.notify_all();
 213 }
< prev index next >