package jef.tools.management;
import jef.common.log.LogUtil;
import jef.tools.reflect.ClassUtils;
/**
* 信号量处理工具
* @author Administrator
*
*/
public class SignalUtils {
private static TermHandler TERM=null;
/**
* 获得终止信号量处理器
* @return
*/
public static synchronized TermHandler getTermHandler() {
if(TERM==null){
String clzName;
if(ClassUtils.isPresent("sun.misc.Signal.Signal", null)){
clzName="jef.tools.management.SunJdkTERMHandler";
}else{
LogUtil.error("Can not operate signals: Unknown JDK"+System.getProperty("java.vm.vendor"));
return null;
}
try {
Class<?> clz=Class.forName(clzName);
TERM=(TermHandler)clz.newInstance();
TERM.activate();
} catch (Exception e) {
LogUtil.exception(e);
}
}
return TERM;
}
}