Added upstream version.
[vlp.git] / examp / trzeci.log
1 program Second;
2
3 unit aSemaphore: process(node:integer);
4    unit pass: procedure;
5    begin
6      return  enable free disable pass;  
7    end pass;
8    unit free: procedure;
9    begin
10       return enable pass disable free;  
11    end free;
12
13    unit fin: procedure; 
14    begin
15       bol := false;
16    end fin;
17    var bol: boolean;
18 begin
19   bol := true;
20
21   return;
22   enable  pass, fin ;
23   while bol
24   do
25   od; 
26   writeln("koniec semafora");
27 end  aSemaphore;
28
29  unit  writer:  process (node:integer, nr:integer,s: string, sem: aSemaphore);
30    var  i: integer,
31         A:  arrayof  char;
32
33    unit fin: procedure;
34    begin
35    end fin;
36  begin
37     A:=unpack(s);
38     return;
39
40     call  sem.pass;
41     writeln("jestem w procesie ",nr);
42     for  i := lower(a)  to  upper(a)
43     do
44         write(a(i));
45     od;
46     writeln;
47     writeln("skonczyl",nr);
48      call  sem.free;
49     accept fin; 
50  end  writer;
51
52  var  s: aSemaphore, w1, w2: writer, i: integer;
53
54  begin   s :=  new  aSemaphore(0);
55   resume(s);
56   w1:= new  writer(0,1,"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",s);
57   w2:= new  writer(0,2,"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", s);
58   writeln("press Enter"); 
59   readln;
60   resume(w1);
61   resume(w2);
62   call w1.fin; 
63   call w2.fin;
64   call s.fin; 
65   writeln("polaczone procesy");
66 (*   call endrun;  *)
67  end  Second\0\0