diff options
-rw-r--r-- | java/tests/Reactor/TimerQueueTest.java | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/java/tests/Reactor/TimerQueueTest.java b/java/tests/Reactor/TimerQueueTest.java new file mode 100644 index 00000000000..de905a66aca --- /dev/null +++ b/java/tests/Reactor/TimerQueueTest.java @@ -0,0 +1,79 @@ +// ============================================================================ +// +// = PACKAGE +// tests.Reactor +// +// = FILENAME +// TimerQueueTest.java +// +// = AUTHOR +// Prashant Jain +// +// ============================================================================ +package tests.Reactor; + +import ACE.OS.*; +import ACE.ASX.*; +import ACE.Reactor.*; + +public class TimerQueueTest implements EventHandler +{ + public int handleTimeout (TimeValue tv, Object obj) + { + ACE.DEBUG ("handleTimeout: " + tv.toString () + " " + (String) obj); + return 0; + } + + public static void main (String args []) + { + TimerQueue tq = new TimerQueue (); + TimerQueueTest th1 = new TimerQueueTest (); + int n = 5; + + try + { + if (args.length == 1) + { + n = Integer.parseInt (args[0]); + } + } + catch (NumberFormatException e) + { + ACE.ERROR ("Illegal argument."); + } + + // Set a periodic timer + int id= tq.scheduleTimer (th1, + "periodic", + new TimeValue (2), + new TimeValue (3)); + + int i; + // Set a bunch of single timers + for (i=1; i < n; i++) + { + tq.scheduleTimer (th1, + "A-timer-" + new Integer (i), + new TimeValue (i*2)); + } + + TimerQueueTest th2 = new TimerQueueTest (); + for (i=1; i < n; i++) + { + tq.scheduleTimer (th2, + "B-timer-" + new Integer (i), + new TimeValue (i*3)); + } + // Cancel all timers associated with this handler + tq.cancelTimer (th2); + + try + { + Thread.sleep (30000); + } + catch (InterruptedException e) + { + } + tq.cancelTimer (id); + } +} |