summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/core/StandaloneMain.java8
-rw-r--r--vespajlib/src/test/java/com/yahoo/system/CatchSignalsTestCase.java (renamed from vespajlib/src/test/java/com/yahoo/system/CatchSigTermTestCase.java)2
-rw-r--r--yolean/src/main/java/com/yahoo/yolean/system/CatchSignals.java (renamed from yolean/src/main/java/com/yahoo/yolean/system/CatchSigTerm.java)14
-rw-r--r--yolean/src/test/java/com/yahoo/yolean/system/CatchSignalsTestCase.java (renamed from yolean/src/test/java/com/yahoo/yolean/system/CatchSigTermTestCase.java)4
4 files changed, 15 insertions, 13 deletions
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/core/StandaloneMain.java b/jdisc_core/src/main/java/com/yahoo/jdisc/core/StandaloneMain.java
index 1291418083b..770c59dec35 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/core/StandaloneMain.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/core/StandaloneMain.java
@@ -1,7 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.jdisc.core;
-import com.yahoo.yolean.system.CatchSigTerm;
+import com.yahoo.yolean.system.CatchSignals;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -41,7 +41,7 @@ public class StandaloneMain {
System.out.println("debug\tInitializing application without privileges.");
loader.init(bundleLocation, false);
loader.start();
- setupSigTermHandler();
+ setupSignalHandlers();
waitForShutdown();
System.out.println("debug\tTrying to shutdown in a controlled manner.");
log.log(Level.INFO, "JDisc shutting down");
@@ -59,8 +59,8 @@ public class StandaloneMain {
}
private final AtomicBoolean signalCaught = new AtomicBoolean(false);
- private void setupSigTermHandler() {
- CatchSigTerm.setup(signalCaught); // catch termination signal
+ private void setupSignalHandlers() {
+ CatchSignals.setup(signalCaught);
}
private void waitForShutdown() {
synchronized (signalCaught) {
diff --git a/vespajlib/src/test/java/com/yahoo/system/CatchSigTermTestCase.java b/vespajlib/src/test/java/com/yahoo/system/CatchSignalsTestCase.java
index 9b370d4ce10..13879115555 100644
--- a/vespajlib/src/test/java/com/yahoo/system/CatchSigTermTestCase.java
+++ b/vespajlib/src/test/java/com/yahoo/system/CatchSignalsTestCase.java
@@ -8,7 +8,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
/**
* @author arnej27959
*/
-public class CatchSigTermTestCase {
+public class CatchSignalsTestCase {
@Test
public void testThatSetupCompiles() {
diff --git a/yolean/src/main/java/com/yahoo/yolean/system/CatchSigTerm.java b/yolean/src/main/java/com/yahoo/yolean/system/CatchSignals.java
index ee87ab9c081..dce70fbbb5f 100644
--- a/yolean/src/main/java/com/yahoo/yolean/system/CatchSigTerm.java
+++ b/yolean/src/main/java/com/yahoo/yolean/system/CatchSignals.java
@@ -8,12 +8,12 @@ import java.lang.reflect.*;
import java.util.concurrent.atomic.AtomicBoolean;
-public class CatchSigTerm {
+public class CatchSignals {
/**
- * Sets up a signal handler for SIGTERM, where a given AtomicBoolean
- * gets a true value when the TERM signal is caught.
+ * Sets up a signal handler for SIGTERM and SIGINT, where a given AtomicBoolean
+ * gets a true value when the signal is caught.
*
- * Callers basically have two options for acting on the TERM signal:
+ * Callers basically have two options for acting on the signal:
*
* They may choose to synchronize and wait() on this variable,
* and they will be notified when it changes state to true. To avoid
@@ -26,7 +26,7 @@ public class CatchSigTerm {
* as its state becomes true, the signal has been received, and the
* application should exit as soon as possible.
*
- * @param signalCaught set to false initially, will be set to true when SIGTERM is caught.
+ * @param signalCaught set to false initially, will be set to true when SIGTERM or SIGINT is caught.
*/
@SuppressWarnings("rawtypes")
public static void setup(final AtomicBoolean signalCaught) {
@@ -44,15 +44,17 @@ public class CatchSigTerm {
return null;
}
};
- Object shandler = Proxy.newProxyInstance(CatchSigTerm.class.getClassLoader(),
+ Object shandler = Proxy.newProxyInstance(CatchSignals.class.getClassLoader(),
new Class[] { shc },
ihandler);
Constructor[] c = ssc.getDeclaredConstructors();
assert c.length == 1;
Object sigterm = c[0].newInstance("TERM");
+ Object sigint = c[0].newInstance("INT");
Method m = findMethod(ssc, "handle");
assert m != null; // "NoSuchMethodException"
m.invoke(null, sigterm, shandler);
+ m.invoke(null, sigint, shandler);
} catch (ClassNotFoundException | InvocationTargetException | InstantiationException | IllegalAccessException e) {
System.err.println("FAILED setting up signal catching: "+e);
}
diff --git a/yolean/src/test/java/com/yahoo/yolean/system/CatchSigTermTestCase.java b/yolean/src/test/java/com/yahoo/yolean/system/CatchSignalsTestCase.java
index 056db2d3592..e68ce334f31 100644
--- a/yolean/src/test/java/com/yahoo/yolean/system/CatchSigTermTestCase.java
+++ b/yolean/src/test/java/com/yahoo/yolean/system/CatchSignalsTestCase.java
@@ -8,11 +8,11 @@ import java.util.concurrent.atomic.AtomicBoolean;
/**
* @author arnej27959
*/
-public class CatchSigTermTestCase {
+public class CatchSignalsTestCase {
@Test
public void testThatSetupCompiles() {
- CatchSigTerm.setup(new AtomicBoolean(false));
+ CatchSignals.setup(new AtomicBoolean(false));
}
}