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:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user