change
authorbdemsky <bdemsky>
Wed, 6 Aug 2008 19:13:06 +0000 (19:13 +0000)
committerbdemsky <bdemsky>
Wed, 6 Aug 2008 19:13:06 +0000 (19:13 +0000)
Robust/src/Benchmarks/Prefetch/Em3d/dsm/Em3d2.java
Robust/src/ClassLibrary/Barrier.java

index 1a5444026606d1d0b1a5d66c046b96036965fd6b..d54fbd0fc3b0e68c9e6c0f2e93a69edc7e44546e 100644 (file)
@@ -176,6 +176,8 @@ public class Em3d extends Thread {
       mybarr = global new BarrierServer(numThreads);
       graph =  BiGraph.create(em.numNodes, em.numDegree, numThreads);
     }
+    mybarr.start(mid[1]);
+
 
     Em3dWrap[] em3d=new Em3dWrap[numThreads];    
     int increment = em.numNodes/numThreads;
@@ -197,9 +199,18 @@ public class Em3d extends Thread {
       }
     }
 
+    boolean waitfordone=true;
+    while(waitfordone) {
+       atomic {
+           if (mybarr.done)
+               waitfordone=false;
+       }
+    }
+
+    
+
     //TODO check if correct
     //
-    mybarr.start(mid[1]);
     System.printString("Starting Barrier run\n");
     for(int i = 0; i<numThreads; i++) {
       em3d[i].em3d.start(mid[i]);
index 3f549f042ff203de3eda8f24ab37780d938304e1..c1892564872de2376784e6cd706fb087f1051249 100644 (file)
@@ -1,10 +1,10 @@
 public class BarrierServer extends Thread {
     int numthreads;
-    int done;
+    boolean done;
 
     public BarrierServer(int n) {
        numthreads=n;
-       done=0;
+       done=false;
     }
     
     public void run() {
@@ -12,7 +12,7 @@ public class BarrierServer extends Thread {
        ServerSocket ss=new ServerSocket(2000);
        atomic {
            n=numthreads;
-           done=1;
+           done=true;
        }
        Socket ar[]=new Socket[n];
        for(int i=0;i<n;i++) {