package jef.tools.management;
import jef.common.Callback;
import jef.common.log.LogUtil;
import sun.misc.Signal;
import sun.misc.SignalHandler;
/**
* 专门处理SUN JDK下的信号量的类,只能在SUN JDK下编译通过
* @author Administrator
*
*/
abstract class AbstractSunJdkSignalHandler extends SignalEvents implements SignalHandler{
public void handle(Signal arg0) {
for(Callback<Integer,Exception> c:events){
try{
c.call(arg0.getNumber());
}catch(Exception e){
LogUtil.exception(e);
}
}
processAfter();
}
protected void processAfter() {
}
protected void regist(String signalName) {
Signal sig=new Signal(signalName);
try{
Signal.handle(sig,this);
LogUtil.info("Registe "+signalName+" signal success!");
}catch(Throwable t){
LogUtil.exception("Registe "+signalName+" Signal error!",t);
}
}
}