package railo.runtime.engine; import railo.commons.lang.types.RefBoolean; import railo.runtime.config.ConfigServer; import railo.runtime.config.ConfigServerImpl; /** * own thread how check the main thread and his data */ public final class Monitor extends Thread { private static final long INTERVALL = 5000; private final RefBoolean run; private final ConfigServerImpl configServer; /** * @param contextes * @param interval * @param run */ public Monitor(ConfigServer configServer,RefBoolean run) { this.run=run; this.configServer=(ConfigServerImpl) configServer; } @Override public void run() { short tries=0; while(run.toBooleanValue()) { try { sleep(INTERVALL); } catch (InterruptedException e) { e.printStackTrace(); } if(!configServer.isMonitoringEnabled()) return; railo.runtime.monitor.IntervallMonitor[] monitors = configServer.getIntervallMonitors(); int logCount=0; if(monitors!=null)for(int i=0;i<monitors.length;i++){ if(monitors[i].isLogEnabled()) { logCount++; try { monitors[i].log(); } catch (Throwable e) { e.printStackTrace(); } } } if(logCount==0) { tries++; if(tries>=10)return; } } } }