Some sun.misc internal APIs are deprectaed in JDK 9 and will be encapsulated or removed in a future release.
public void handle(Signal signal) { LOG.info("Receive singal " + signal.getName() + " " + signal.getNumber()); Runnable runner = signalHandlers.get(signal.getNumber()); try { if (runner == null) { LOG.info("Skip JStorm register handler of signal: {}", signal.getName()); } else { LOG.info("Begin to handle signal of {}", signal.getName()); runner.run(); LOG.info("Successfully handle signal of {}", signal.getName()); } } catch (Throwable e) { LOG.error("Failed to handle signal of " + signal.getName() + ":" + e.getCause(), e); } try { SignalHandler oldHandler = oldSignalHandlers.get(signal.getNumber()); if (oldHandler != null) { LOG.info("Begin to run the old singleHandler"); oldHandler.handle(signal); // Force to sleep one second to avoid competition JStormUtils.sleepMs(1000); LOG.info("Successfully run the old singleHandler"); } } catch (Throwable e) { LOG.error("Failed to run old SignalHandler of signal: " + signal.getName() + ":" + e.getCause(), e); } } }
static void addSigIntHandler() { sun.misc.Signal.handle(new sun.misc.Signal("INT"), sig -> { logger.info("Got " + sig.getName() + " signal"); }); } }
/** * Handler for the JVM API for signal handling. * @param s signal raised */ @Override public void handle(Signal s) { signalCount.incrementAndGet(); InterruptData data = new InterruptData(s.getName(), s.getNumber()); LOG.info("Interrupted: {}", data); handler.interrupted(data); }
@Override public void handle(Signal signal) { LOG.warn("Detected signal {} {}, calling deallocator", signal.getName(), signal.getNumber()); // do nothing on "signal default" or "signal ignore" if (handler == SIG_DFL || handler == SIG_IGN) { return; } try { deallocator.deallocate(); } finally { handler.handle(signal); } }
@Override @IgnoreJRERequirement public void handle(Signal sig) { if (interceptor.handle(sig.getName()) && (oldHandler != null)) { oldHandler.handle(sig); } } }
/** * Handle an incoming signal. * * @param signal The incoming signal */ @Override public void handle(Signal signal) { LOG.error("RECEIVED SIGNAL " + signal.getNumber() + ": SIG" + signal.getName()); prevHandler.handle(signal); } }
@Override public void handle(final sun.misc.Signal sig) { notifyListeners(new SignalEvent(sig, Signal.valueOfName(sig.getName()))); try { handleDefault(sig, Gfsh.getConsoleReader()); } catch (IOException e) { e.printStackTrace(); } }
protected void handleDefault(final sun.misc.Signal sig, final ConsoleReader consoleReader) throws IOException { final Signal signal = Signal.valueOfName(sig.getName()); switch (signal) { case SIGINT: if (consoleReader != null) { String prompt = consoleReader.getPrompt(); consoleReader.resetPromptLine(prompt, "", -1); } break; default: final SignalHandler handler = getOriginalSignalHandler(signal); if (handler != null) { handler.handle(sig); } } }
@Override public void handle(Signal signal) { if (SIGNAL_NAME.equals(signal.getName())) { LOG.warn("Signal " + SIGNAL_NAME + " received. Reloading configuration."); DriverFactory.configure(); } } };
@Override public void handle(Signal signal) { if (signal.getName().equals("INT")) { try { shell.interrupt(); } catch (Throwable e) { System.err.println(e.getMessage()); System.exit(0); } } } }
/** * Handle an incoming signal. * * @param signal The incoming signal */ @Override public void handle(Signal signal) { LOG.error("RECEIVED SIGNAL " + signal.getNumber() + ": SIG" + signal.getName()); prevHandler.handle(signal); } }
/** * Handle an incoming signal. * * @param signal The incoming signal */ @Override public void handle(Signal signal) { LOG.error("RECEIVED SIGNAL " + signal.getNumber() + ": SIG" + signal.getName()); prevHandler.handle(signal); } }
protected void handleDefault(final sun.misc.Signal sig) { final Signal signal = Signal.valueOfName(sig.getName()); switch (signal) { case SIGINT: break; // ignore the interrupt signal default: final SignalHandler handler = getOriginalSignalHandler(signal); if (handler != null) { handler.handle(sig); } } }
/** * Handle an incoming signal. * * @param signal The incoming signal */ @Override public void handle(Signal signal) { LOG.error("RECEIVED SIGNAL " + signal.getNumber() + ": SIG" + signal.getName()); prevHandler.handle(signal); } }
protected void handleDefault(final sun.misc.Signal sig) { final Signal signal = Signal.valueOfName(sig.getName()); switch (signal) { case SIGINT: break; // ignore the interrupt signal default: final SignalHandler handler = getOriginalSignalHandler(signal); if (handler != null) { handler.handle(sig); } } }
/** * Handle an incoming signal. * * @param signal The incoming signal */ @Override public void handle(Signal signal) { LOG.error("RECEIVED SIGNAL " + signal.getNumber() + ": SIG" + signal.getName()); prevHandler.handle(signal); } }
@Override @IgnoreJRERequirement public void handle(Signal sig) { if (interceptor.handle(sig.getName()) && (oldHandler != null)) { oldHandler.handle(sig); } } }
@Override public void handle(final sun.misc.Signal sig) { //System.err.printf("Thread (%1$s) is processing Signal '%2$s' (%3$d)...%n", // Thread.currentThread().getName(), sig.getName(), sig.getNumber()); notifyListeners(new SignalEvent(sig, Signal.valueOfName(sig.getName()))); handleDefault(sig); }
@Override public void handle(Signal s) { handler.handle(new StickySignal(s.getName(), s.getNumber())); if (next != null) next.handle(s); }
@Override public void handle(final sun.misc.Signal sig) { //System.err.printf("Thread (%1$s) is processing Signal '%2$s' (%3$d)...%n", // Thread.currentThread().getName(), sig.getName(), sig.getNumber()); notifyListeners(new SignalEvent(sig, Signal.valueOfName(sig.getName()))); handleDefault(sig); }