summaryrefslogtreecommitdiff
path: root/java/tests/ASX/TaskTest.java
blob: b26b48ea148e13f11c14f9056025161e75d80e27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// ============================================================================
//
// = PACKAGE
//    tests.ASX
// 
// = FILENAME
//    TaskTest.java
//
// = AUTHOR
//    Prashant Jain
// 
// ============================================================================
package tests.ASX;

import java.io.*;
import JACE.OS.*;
import JACE.ASX.*;
import JACE.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);
    }
}