< prev index next >

src/hotspot/share/runtime/os.cpp

Print this page

        

*** 360,371 **** switch (sig) { case SIGBREAK: { // Check if the signal is a trigger to start the Attach Listener - in that // case don't print stack traces. ! if (!DisableAttachMechanism && AttachListener::is_init_trigger()) { continue; } // Print stack traces // Any SIGBREAK operations added here should make sure to flush // the output stream (e.g. tty->flush()) after output. See 4803766. // Each module also prints an extra carriage return after its output. --- 360,388 ---- switch (sig) { case SIGBREAK: { // Check if the signal is a trigger to start the Attach Listener - in that // case don't print stack traces. ! if (!DisableAttachMechanism) { ! // Attempt to transit state to AL_INITIALIZING. ! AttachListenerState cur_state = AttachListener::transit_state(AL_INITIALIZING, AL_NOT_INITIALIZED); ! if (cur_state == AL_INITIALIZING) { ! // Attach Listener has been started to initialize. Ignore this signal. continue; + } else if (cur_state == AL_NOT_INITIALIZED) { + // Start to initialize. + if (!AttachListener::is_init_trigger()) { + // Attach Listener could not be started. + // So we need to transit the state to AL_NOT_INITIALIZED. + AttachListener::set_state(AL_NOT_INITIALIZED); + } + continue; + } else if (AttachListener::check_socket_file()) { + // Attach Listener has been started, but unix domain socket file + // does not exist. So restart Attach Listener. + continue; + } } // Print stack traces // Any SIGBREAK operations added here should make sure to flush // the output stream (e.g. tty->flush()) after output. See 4803766. // Each module also prints an extra carriage return after its output.
< prev index next >