Use samskivert signal wrapper.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4909 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2007-12-17 22:23:51 +00:00
parent 2bf1c107d1
commit 6e55c2df8b
@@ -21,10 +21,8 @@
package com.threerings.presents.server; package com.threerings.presents.server;
import sun.misc.Signal;
import sun.misc.SignalHandler;
import com.samskivert.util.RunAnywhere; import com.samskivert.util.RunAnywhere;
import com.samskivert.util.SignalUtil;
import static com.threerings.presents.Log.log; import static com.threerings.presents.Log.log;
@@ -32,28 +30,20 @@ import static com.threerings.presents.Log.log;
* Handles signals using Sun's undocumented Signal class. * Handles signals using Sun's undocumented Signal class.
*/ */
public class SunSignalHandler extends AbstractSignalHandler public class SunSignalHandler extends AbstractSignalHandler
implements SignalHandler
{ {
// from interface SignalHandler
public void handle (Signal sig)
{
SignalHandler chain = null;
if (sig.getName().equals("INT")) {
intReceived();
} else if (sig.getName().equals("HUP")) {
hupReceived();
} else {
log.warning("Received unknown signal '" + sig.getName() + "'.");
}
}
protected boolean registerHandlers () protected boolean registerHandlers ()
{ {
// we don't track and call the chained handlers for INT and HUP because those exit the JVM SignalUtil.register(SignalUtil.Number.INT, new SignalUtil.Handler() {
// which we do not want to do public void signalReceived (SignalUtil.Number sig) {
Signal.handle(new Signal("INT"), this); intReceived();
}
});
if (!RunAnywhere.isWindows()) { if (!RunAnywhere.isWindows()) {
Signal.handle(new Signal("HUP"), this); SignalUtil.register(SignalUtil.Number.HUP, new SignalUtil.Handler() {
public void signalReceived (SignalUtil.Number sig) {
hupReceived();
}
});
} }
return true; return true;
} }