package abra; /** * Abstract base class for ABRA threads. * * @author Lisle E. Mose (lmose at unc dot edu) */ public abstract class AbraRunnable implements Runnable { long spawnStartTime; private ThreadManager threadManager; public AbraRunnable(ThreadManager threadManager) { this.threadManager = threadManager; } @Override public void run() { try { go(); } catch (Throwable t) { t.printStackTrace(); System.exit(-1); } finally { threadManager.removeThread(this); } } public void setSpawnStartTime(long spawnStartTime) { this.spawnStartTime = spawnStartTime; } public abstract void go() throws Exception; }