compile error fixes
[IRC.git] / Robust / src / Benchmarks / Prefetch / Em3d / java / Barrier.java
1 public class Barrier {
2   int numthreads;
3   int entercount;
4   boolean cleared;
5
6   public Barrier(int n) {
7     numthreads=n;
8     cleared = false;
9   }
10
11   public Barrier() {
12
13   }
14
15   public void reset() {
16     cleared = false;
17     entercount = 0;
18   }
19
20   public static void enterBarrier(Barrier b) {
21     int tmp;
22     boolean retry=true;
23
24     if (b.numthreads == 1) 
25       return;
26
27     do {
28       if (!b.cleared) {
29         b.entercount++;
30         tmp = b.entercount;
31         if (tmp==b.numthreads) {
32           b.cleared=true;
33           b.entercount--;
34           return;
35         }
36         retry=false;
37       }
38     } while(retry);
39
40     while(true) {
41       if (b.cleared) {
42         b.entercount--;
43         int count = b.entercount;
44         if (count==0)
45           b.cleared=false;
46         return;
47       }
48     }
49   }
50 }