public class TimeoutService
extends java.lang.Object
Implemented having large scale programs in mind: if you open many concurrent SSH connections that rely on timeouts, then there will be only one timeout thread. Once all timeouts have expired/are cancelled, the thread will (sooner or later) exit. Only after new timeouts arrive a new thread (singleton) will be instantiated.
Modifier and Type | Class and Description |
---|---|
private static class |
TimeoutService.TimeoutThread |
static class |
TimeoutService.TimeoutToken |
Modifier and Type | Field and Description |
---|---|
private static Logger |
log |
private static java.lang.Thread |
timeoutThread |
private static java.util.LinkedList |
todolist |
Constructor and Description |
---|
TimeoutService() |
Modifier and Type | Method and Description |
---|---|
static TimeoutService.TimeoutToken |
addTimeoutHandler(long runTime,
java.lang.Runnable handler)
It is assumed that the passed handler will not execute for a long time.
|
static void |
cancelTimeoutHandler(TimeoutService.TimeoutToken token) |
private static final Logger log
private static final java.util.LinkedList todolist
private static java.lang.Thread timeoutThread
public static final TimeoutService.TimeoutToken addTimeoutHandler(long runTime, java.lang.Runnable handler)
runTime
- handler
- public static final void cancelTimeoutHandler(TimeoutService.TimeoutToken token)