start of new file
[IRC.git] / Robust / src / ClassLibrary / Barrier.java
1 public class BarrierServer extends Thread {
2     int numthreads;
3     boolean done;
4
5     public BarrierServer(int n) {
6         numthreads=n;
7         done=false;
8     }
9     
10     public void run() {
11         int n;
12         ServerSocket ss=new ServerSocket(2000);
13         atomic {
14             n=numthreads;
15             done=true;
16         }
17         Socket ar[]=new Socket[n];
18         for(int i=0;i<n;i++) {
19             ar[i]=ss.accept();
20         }
21         
22         while(true) {
23             for(int j=0;j<n;j++) {
24                 Socket s=ar[j];
25                 byte b[]=new byte[1];
26                 while(s.read(b)!=1) {
27                     ;
28         }
29             }
30             byte b[]=new byte[1];
31             b[0]= (byte) 'A';
32             for(int j=0;j<n;j++)
33           ar[j].write(b);
34         }
35     }
36 }
37
38 public class Barrier {
39     Socket s;
40     public Barrier(String name) {
41         s=new Socket(name, 2000);
42     }
43     
44     public static void enterBarrier(Barrier barr) {
45         byte b[]=new byte[1];
46         b[0]=(byte)'A';
47         barr.s.write(b);
48         while(barr.s.read(b)!=1) {
49       ;
50     }
51     }
52 }