package dtests; import cute.dcute.Actor; import cute.dcute.Message; import cute.dcute.DScheduler; /** * Created by IntelliJ IDEA. * User: Koushik Sen (ksen@cs.uiuc.edu) * Date: Dec 17, 2005 * Time: 10:12:03 PM */ class BetterDPORMsg extends Message { public int v; public Actor client; public BetterDPORMsg(int v,Actor client) { this.v = v; this.client = client; } } class XVar extends Actor { private int x; public void receive(Message m) { BetterDPORMsg msg = (BetterDPORMsg)m; x = msg.v; System.out.println("x = " + x); send(msg.client,new Message()); } } class A1 extends Actor { int i=0; XVar x; public A1(XVar x){ this.x = x; send(this,new Message()); } public void receive(Message m) { i++; if(i==1){ send(x,new BetterDPORMsg(2,this)); } else if(i==2){ send(x,new BetterDPORMsg(3,this)); } } } class A2 extends Actor { int i=0; XVar x; XVar y; public A2(XVar x,XVar y){ this.x = x; this.y = y; send(this,new Message()); } public void receive(Message m) { i++; if(i==1){ send(y,new BetterDPORMsg(1,this)); } else if(i==2){ send(x,new BetterDPORMsg(4,this)); } } } public class BetterDPOR { public static void main(String[] args) { XVar x = new XVar(); XVar y = new XVar(); new A2(x,y); new A1(x); DScheduler.sched.start(); } }