package edu.berkeley.fleet.ir;
+import java.util.concurrent.Semaphore;
import java.util.*;
import java.net.*;
import edu.berkeley.fleet.two.*;
System.out.println("== phase "+phase+" ==================================================================");
ctx2 = new Context(fp.getFleet());
proc.reset(ctx2, phase);
+
+ final Semaphore sem = new Semaphore(0);
+ final FleetProcess fpf = fp;
+ final int phasef = phase;
+ new Thread() {
+ public void run() {
+ for(int ii=0; ii<reset_count; ii++) {
+ System.out.print("\r phase "+phasef+" ==> " + (ii+1) + " / " + reset_count);
+ fpf.recvWord();
+ }
+ sem.release();
+ }}.start();
+
for(Dock dock : torpedoes) fp.sendToken(dock.getInstructionDestination());
ctx2.emit(ai = new ArrayList<Instruction>());
for(Instruction ins : ai) fp.sendInstruction(ins);
fp.flush();
+
+ sem.acquire();
System.out.println("flushed");
- for(int ii=0; ii<reset_count; ii++) {
- System.out.print("\r phase "+phase+" ==> " + (ii+1) + " / " + reset_count);
- fp.recvWord();
- }
+
System.out.println();
}