From: <ha...@us...> - 2008-10-03 21:23:30
|
Revision: 2217 http://cogkit.svn.sourceforge.net/cogkit/?rev=2217&view=rev Author: hategan Date: 2008-10-03 21:23:22 +0000 (Fri, 03 Oct 2008) Log Message: ----------- startup watchdog Modified Paths: -------------- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterService.java Modified: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterService.java =================================================================== --- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterService.java 2008-10-02 18:44:07 UTC (rev 2216) +++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterService.java 2008-10-03 21:23:22 UTC (rev 2217) @@ -11,6 +11,8 @@ import java.io.IOException; import java.net.Socket; +import java.util.Timer; +import java.util.TimerTask; import org.apache.log4j.Logger; import org.globus.cog.abstraction.coaster.service.job.manager.JobQueue; @@ -40,6 +42,7 @@ private Exception e; private boolean done; private boolean suspended; + private static Timer watchdogs = new Timer(); public CoasterService() throws IOException { this(null, null); @@ -179,25 +182,25 @@ } private void startShutdownWatchdog() { - new Thread() { - { - setName("Shutdown watchdog"); - setDaemon(true); + watchdogs.schedule(new TimerTask() { + public void run() { + logger + .warn("Shutdown failed after 5 minutes. Forcefully shutting down"); + System.exit(3); } + }, 5 * 60 * 1000); + } + + private static TimerTask startConnectWatchdog() { + TimerTask tt = new TimerTask() { public void run() { - try { - Thread.sleep(5 * 60 * 1000); - logger - .info("Shutdown failed after 5 minutes. Forcefully shutting down"); - System.exit(3); - } - catch (InterruptedException e) { - e.printStackTrace(); - } + logger.warn("Failed to connect after 2 minutes. Shutting down"); + System.exit(4); } - - }.start(); + }; + watchdogs.schedule(tt, 2 * 60 * 1000); + return tt; } public JobQueue getJobQueue() { @@ -219,7 +222,9 @@ else { s = new CoasterService(args[0], args[1]); } + TimerTask t = startConnectWatchdog(); s.start(); + t.cancel(); s.waitFor(); System.exit(0); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |