/* Copyright (c) 2006, Sriram Srinivasan
*
* You may distribute this software under the terms of the license
* specified in the file "License"
*/
package kilim.bench;
import kilim.Mailbox;
import kilim.Pausable;
import kilim.Task;
/**
* Compare this to Jetlang's PerfMain tests
* See http://code.google.com/p/jetlang/
*/
public class Jetlang extends Task {
/* limit number of msgs in mailbox */
static Mailbox<Integer> mb = new Mailbox<Integer>(1000,1000);
final static int max = 5000000;
public static void main(String args[]) throws Exception {
Stopwatch s = new Stopwatch();
s.tick();
Task t = new Jetlang().start();
new Publisher().start();
t.joinb(); // wait for receiver to finish
s.tickPrint(max+1); // same number of iterations as jetlang's tests.
}
public void execute() throws Pausable {
while (true) {
int i = mb.get();
if (i == max) {
break;
}
}
}
static class Publisher extends Task {
public void execute() throws Pausable {
for (int i = 0; i <= max; i++) {
mb.put(i);
}
}
}
}