713 for(JavaThread *cur_thread = Threads::first(); cur_thread;
714 cur_thread = cur_thread->next()) {
715 cur_state = cur_thread->safepoint_state();
716
717 if (cur_thread->thread_state() != _thread_blocked &&
718 ((reason == _spinning_timeout && cur_state->is_running()) ||
719 (reason == _blocking_timeout && !cur_state->has_called_back()))) {
720 tty->print("# ");
721 cur_thread->print();
722 tty->print_cr("");
723 }
724 }
725 tty->print_cr("# SafepointSynchronize::begin: (End of list)");
726 }
727
728 // To debug the long safepoint, specify both DieOnSafepointTimeout &
729 // ShowMessageBoxOnError.
730 if (DieOnSafepointTimeout) {
731 char msg[1024];
732 VM_Operation *op = VMThread::vm_operation();
733 sprintf(msg, "Safepoint sync time longer than %d ms detected when executing %s.",
734 SafepointTimeoutDelay,
735 op != NULL ? op->name() : "no vm operation");
736 fatal(msg);
737 }
738 }
739
740
741 // -------------------------------------------------------------------------------------------------------
742 // Implementation of ThreadSafepointState
743
744 ThreadSafepointState::ThreadSafepointState(JavaThread *thread) {
745 _thread = thread;
746 _type = _running;
747 _has_called_back = false;
748 _at_poll_safepoint = false;
749 }
750
751 void ThreadSafepointState::create(JavaThread *thread) {
752 ThreadSafepointState *state = new ThreadSafepointState(thread);
753 thread->set_safepoint_state(state);
|
713 for(JavaThread *cur_thread = Threads::first(); cur_thread;
714 cur_thread = cur_thread->next()) {
715 cur_state = cur_thread->safepoint_state();
716
717 if (cur_thread->thread_state() != _thread_blocked &&
718 ((reason == _spinning_timeout && cur_state->is_running()) ||
719 (reason == _blocking_timeout && !cur_state->has_called_back()))) {
720 tty->print("# ");
721 cur_thread->print();
722 tty->print_cr("");
723 }
724 }
725 tty->print_cr("# SafepointSynchronize::begin: (End of list)");
726 }
727
728 // To debug the long safepoint, specify both DieOnSafepointTimeout &
729 // ShowMessageBoxOnError.
730 if (DieOnSafepointTimeout) {
731 char msg[1024];
732 VM_Operation *op = VMThread::vm_operation();
733 sprintf(msg, "Safepoint sync time longer than " INTX_FORMAT "ms detected when executing %s.",
734 SafepointTimeoutDelay,
735 op != NULL ? op->name() : "no vm operation");
736 fatal(msg);
737 }
738 }
739
740
741 // -------------------------------------------------------------------------------------------------------
742 // Implementation of ThreadSafepointState
743
744 ThreadSafepointState::ThreadSafepointState(JavaThread *thread) {
745 _thread = thread;
746 _type = _running;
747 _has_called_back = false;
748 _at_poll_safepoint = false;
749 }
750
751 void ThreadSafepointState::create(JavaThread *thread) {
752 ThreadSafepointState *state = new ThreadSafepointState(thread);
753 thread->set_safepoint_state(state);
|