src/share/vm/runtime/safepoint.cpp

Print this page




 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);