< prev index next >

src/hotspot/share/runtime/safepoint.cpp

Print this page




 922         if (cur_thread->safepoint_state()->is_running()) {
 923           ls.print("# ");
 924           cur_thread->print_on(&ls);
 925           ls.cr();
 926         }
 927       }
 928       ls.print_cr("# SafepointSynchronize::begin: (End of list)");
 929     }
 930   }
 931 
 932   // To debug the long safepoint, specify both AbortVMOnSafepointTimeout &
 933   // ShowMessageBoxOnError.
 934   if (AbortVMOnSafepointTimeout) {
 935     // Send the blocking thread a signal to terminate and write an error file.
 936     for (JavaThreadIteratorWithHandle jtiwh; JavaThread *cur_thread = jtiwh.next(); ) {
 937       if (cur_thread->safepoint_state()->is_running()) {
 938         if (!os::signal_thread(cur_thread, SIGILL, "blocking a safepoint")) {
 939           break; // Could not send signal. Report fatal error.
 940         }
 941         // Give cur_thread a chance to report the error and terminate the VM.
 942         os::sleep(Thread::current(), 3000, false);
 943       }
 944     }
 945     fatal("Safepoint sync time longer than " INTX_FORMAT "ms detected when executing %s.",
 946           SafepointTimeoutDelay, VMThread::vm_operation()->name());
 947   }
 948 }
 949 
 950 // -------------------------------------------------------------------------------------------------------
 951 // Implementation of ThreadSafepointState
 952 
 953 ThreadSafepointState::ThreadSafepointState(JavaThread *thread)
 954   : _at_poll_safepoint(false), _thread(thread), _safepoint_safe(false),
 955     _safepoint_id(SafepointSynchronize::InactiveSafepointCounter), _next(NULL) {
 956 }
 957 
 958 void ThreadSafepointState::create(JavaThread *thread) {
 959   ThreadSafepointState *state = new ThreadSafepointState(thread);
 960   thread->set_safepoint_state(state);
 961 }
 962 




 922         if (cur_thread->safepoint_state()->is_running()) {
 923           ls.print("# ");
 924           cur_thread->print_on(&ls);
 925           ls.cr();
 926         }
 927       }
 928       ls.print_cr("# SafepointSynchronize::begin: (End of list)");
 929     }
 930   }
 931 
 932   // To debug the long safepoint, specify both AbortVMOnSafepointTimeout &
 933   // ShowMessageBoxOnError.
 934   if (AbortVMOnSafepointTimeout) {
 935     // Send the blocking thread a signal to terminate and write an error file.
 936     for (JavaThreadIteratorWithHandle jtiwh; JavaThread *cur_thread = jtiwh.next(); ) {
 937       if (cur_thread->safepoint_state()->is_running()) {
 938         if (!os::signal_thread(cur_thread, SIGILL, "blocking a safepoint")) {
 939           break; // Could not send signal. Report fatal error.
 940         }
 941         // Give cur_thread a chance to report the error and terminate the VM.
 942         os::naked_sleep(3000);
 943       }
 944     }
 945     fatal("Safepoint sync time longer than " INTX_FORMAT "ms detected when executing %s.",
 946           SafepointTimeoutDelay, VMThread::vm_operation()->name());
 947   }
 948 }
 949 
 950 // -------------------------------------------------------------------------------------------------------
 951 // Implementation of ThreadSafepointState
 952 
 953 ThreadSafepointState::ThreadSafepointState(JavaThread *thread)
 954   : _at_poll_safepoint(false), _thread(thread), _safepoint_safe(false),
 955     _safepoint_id(SafepointSynchronize::InactiveSafepointCounter), _next(NULL) {
 956 }
 957 
 958 void ThreadSafepointState::create(JavaThread *thread) {
 959   ThreadSafepointState *state = new ThreadSafepointState(thread);
 960   thread->set_safepoint_state(state);
 961 }
 962 


< prev index next >