Hi, I'm experimenting with javaflow and wonder wether it's possible to
develop a preemptive quantum-based scheduler out of javaflow. The idea
would be to execute Continuation.suspend() inside a SIGALRM handler,
which would fire when thread quantum is elapsed. A first, basic example
is:
import org.apache.commons.javaflow.*;
import java.util.*;
import sun.misc.Signal;
import sun.misc.SignalHandler;
class Continuations {
final static int T = 2000;
public static void main(String[] args) {
/*
second alternative, use Timer instead of SIGALRM
new Timer().scheduleAtFixedRate(new TimerTask() {
public void run() {
Continuation.suspend();
}},
T,
T
);*/
Signal.handle(new Signal("ALRM"), new SignalHandler () {
public void handle(Signal sig) {
Continuation.suspend();
}
});
Continuation c = Continuation.startWith(new Runnable() {
public void run() {
while (true) {
System.out.println("running!");
Signal.raise(new Signal("ALRM"));
}
}
});
System.out.println("finishing!");
}
}
Can this idea be made to work?
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]