Some sun.misc internal APIs are deprectaed in JDK 9 and will be encapsulated or removed in a future release.
private void installSignalHandler( String sig, boolean tolerateErrors ) { try { // System.exit() will trigger the shutdown hook Signal.handle( new Signal( sig ), signal -> System.exit( 0 ) ); } catch ( Throwable e ) { if ( !tolerateErrors ) { throw e; } // Errors occur on IBM JDK with IllegalArgumentException: Signal already used by VM: INT // I can't find anywhere where we send a SIGINT to neo4j process so I don't think this is that important } }
SunSignalHandler (BeeLine beeLine) { this.beeLine = beeLine; // Interpret Ctrl+C as a request to cancel the currently // executing query. Signal.handle (new Signal ("INT"), this); }
/** * If running on Windows, do windows-specific setup. */ private static void setupWindows(final Configuration conf, ConfigurationManager cm) { if (!SystemUtils.IS_OS_WINDOWS) { Signal.handle(new Signal("HUP"), new SignalHandler() { @Override public void handle(Signal signal) { conf.reloadConfiguration(); cm.notifyAllObservers(conf); } }); } }
public static void registerSignalHandlers() { sun.misc.Signal.handle(new sun.misc.Signal("INT"), new sun.misc.SignalHandler() { @Override public void handle(final sun.misc.Signal sig) {} }); }
/** * Register a task to be run when a SIGINT is received. * * @param task to run on reception of the signal. */ public static void register(final Runnable task) { Signal.handle(new Signal("INT"), (signal) -> task.run()); } }
Handler(String name, LogAdapter LOG) { this.LOG = LOG; prevHandler = Signal.handle(new Signal(name), this); }
public WebcamSignalHandler() { handler = Signal.handle(new Signal("TERM"), this); }
public class Aaarggh { public static void main(String[] args) throws Exception { Signal.handle(new Signal("INT"), new SignalHandler () { public void handle(Signal sig) { System.out.println( "Aaarggh, a user is trying to interrupt me!!"); System.out.println( "(throw garlic at user, say `shoo, go away')"); } }); for(int i=0; i<100; i++) { Thread.sleep(1000); System.out.print('.'); } } }
/** * Bind to the interrupt handler. * @throws IllegalArgumentException if the exception could not be set */ public void bind() { Preconditions.checkState(signal == null, "Handler already bound"); try { signal = new Signal(name); Signal.handle(signal, this); } catch (IllegalArgumentException e) { throw new IllegalArgumentException( "Could not set handler for signal \"" + name + "\"." + "This can happen if the JVM has the -Xrs set.", e); } }
/** * Register signal to system * if callback is null, then the current process will ignore this signal */ public synchronized void registerSignal(int signalNumber, Runnable callback, boolean replace) { String signalName = signalMap.get(signalNumber); if (signalName == null) { LOG.warn("Invalid signalNumber " + signalNumber); return; } LOG.info("Begin to register signal of {}", signalName); try { SignalHandler oldHandler = Signal.handle(new Signal(signalName), this); LOG.info("Successfully register {} handler", signalName); Runnable old = signalHandlers.put(signalNumber, callback); if (old != null) { if (!replace) { oldSignalHandlers.put(signalNumber, oldHandler); } else { LOG.info("Successfully old {} handler will be replaced", signalName); } } LOG.info("Successfully register signal of {}", signalName); } catch (Exception e) { LOG.error("Failed to register " + signalName + ":" + signalNumber + ", Signal already used by VM or OS: SIGILL"); } }
static void addSigIntHandler() { sun.misc.Signal.handle(new sun.misc.Signal("INT"), sig -> { logger.info("Got " + sig.getName() + " signal"); }); } }
@IgnoreJRERequirement SignalInterceptorHelper(String signame, SignalInterceptor interceptor) { this.interceptor = interceptor; Signal signal = new Signal(signame); oldHandler = Signal.handle(signal, this); }
/** * Construct and register the barrier ready for use. */ public SigIntBarrier() { Signal.handle(new Signal("INT"), (signal) -> signal()); }
public GfshSignalHandler() { for (final Signal signal : Signal.values()) { if (Signal.SIGINT.equals(signal)) { originalSignalHandlers.put(signal, sun.misc.Signal.handle(new sun.misc.Signal(signal.getName()), this)); } } }
Signal.handle(new Signal("TERM"), new SignalHandler() { @Override public void handle(Signal signal) {
private static void registerSignalHandler(final Client client) { if (isDebug()) debugPrint("registering signal handler for SIGINT"); Signal.handle(new Signal("INT"), new SignalHandler() { @Override
interruptSignal = new Signal("INT"); oldSignal = Signal.handle(interruptSignal, new SignalHandler() { private boolean interruptRequested;
Signal sigInt = new Signal("INT"); // First register with SIG_DFL, just to get the old handler. final SignalHandler oldHandler = Signal.handle(sigInt, SignalHandler.SIG_DFL ); // Now register the actual handler Signal.handle(sigInt, new SignalHandler(){ @Override public void handle(Signal signal) { System.err.println("Sigint is being handled"); oldHandler.handle(signal); } });
public IRubyObject call(ThreadContext context, IRubyObject[] args, Block block) { oldHandler.handle(new Signal(handler.signal)); return recv.getRuntime().getNil(); } }, recv.getRuntime().getCurrentContext()), Block.Type.NORMAL);