diff options
Diffstat (limited to 'java/tests/ASX/TaskTest.java')
-rw-r--r-- | java/tests/ASX/TaskTest.java | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/java/tests/ASX/TaskTest.java b/java/tests/ASX/TaskTest.java new file mode 100644 index 00000000000..a1958f2a8dc --- /dev/null +++ b/java/tests/ASX/TaskTest.java @@ -0,0 +1,86 @@ +// ============================================================================ +// +// = PACKAGE +// tests.ASX +// +// = FILENAME +// TaskTest.java +// +// = AUTHOR +// Prashant Jain +// +// ============================================================================ +package tests.ASX; + +import java.io.*; +import ACE.OS.*; +import ACE.ASX.*; +import ACE.Reactor.*; + +public class TaskTest extends Task +{ + int nThreads_; + int nIterations_; + + public TaskTest (int nThreads, int nIterations) + { + this.nIterations_ = nIterations; + this.nThreads_ = nThreads; + if (this.activate (0, nThreads, true) == -1) + ACE.ERROR ("activate failed"); + } + + public int open (Object obj) + { + return 0; + } + + public int close (long flags) + { + return 0; + } + + public int put (MessageBlock mb, TimeValue tv) + { + return 0; + } + + public int handleTimeout (TimeValue tv, Object obj) + { + return 0; + } + + public int svc () + { + for (int i = 1; i <= this.nIterations_; i++) + { + ACE.DEBUG (Thread.currentThread ().toString () + " in iteration " + i); + // Allow other threads to run + Thread.yield (); + } + return 0; + } + + public static void main (String args[]) + { + int nThreads = 1; + int nIterations = 1; + try + { + if (args.length == 2) + { + nThreads = Integer.parseInt (args[0]); + nIterations = Integer.parseInt (args[1]); + } + else if (args.length == 1) + { + nThreads = Integer.parseInt (args[0]); + } + } + catch (NumberFormatException e) + { + ACE.ERROR ("Illegal argument."); + } + TaskTest tt = new TaskTest (nThreads, nIterations); + } +} |