c1892564872de2376784e6cd706fb087f1051249
[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             byte b[]=new byte[1];
30             b[0]= (byte) 'A';
31             for(int j=0;j<n;j++)
32                 ar[j].write(b);
33         }
34     }
35 }
36
37 public class Barrier {
38     Socket s;
39     public Barrier(String name) {
40         s=new Socket(name, 2000);
41     }
42     
43     public static void enterBarrier(Barrier barr) {
44         byte b[]=new byte[1];
45         b[0]=(byte)'A';
46         barr.s.write(b);
47         while(barr.s.read(b)!=1)
48             ;
49     }
50 }