/* Copyright (c) 2006, Sriram Srinivasan
*
* You may distribute this software under the terms of the license
* specified in the file "License"
*/
package kilim.examples;
import kilim.ExitMsg;
import kilim.Mailbox;
import kilim.Pausable;
import kilim.Task;
/**
* Creates lots of tasks that print stuff, sleep, then wake up and print more.
*
* [compile] javac -d ./classes TimedTask.java
* [weave] java kilim.tools.Weave -d ./wlasses kilim.examples.TimedTask
* [run] java -cp ./wlasses:./classes:$CLASSPATH kilim.examples.TimedTask
*
* @author sriram@malhar.net
*/
public class TimedTask extends Task {
public static void main(String[] args) throws Exception {
int numTasks = (args.length > 0) ? Integer.parseInt(args[0]) : 100;
Mailbox<ExitMsg> exitmb= new Mailbox<ExitMsg> ();
for (int i = 0; i < numTasks; i++) {
new TimedTask().start().informOnExit(exitmb);
}
for (int i = 0; i < numTasks; i++) {
exitmb.getb();
}
System.exit(0);
}
public void execute() throws Pausable {
System.out.println("Task #" + id() + " going to sleep ...");
Task.sleep(2000);
System.out.println(" Task #" + id() + " waking up");
}
}