5 unit sync : process(nr:integer);
12 unit sunlock:procedure;
25 unit main_process : process( i:integer, s:sync );
29 unit entry : procedure( i,j:integer );
31 writeln("entry called from node ",i," #",j);
32 if j<0 then cnt:=cnt+1; fi;
46 unit slave : process( i:integer, m:main_process );
53 call m.entry( i, -1 );
57 unit ender : process( i:integer );
64 var m:main_process, s1,s2:slave, sem:sync, e:ender;
71 m := new main_process( 0, sem );
74 s1 := new slave( 2, m );
76 s2 := new slave( 3, m );
85 writeln("end of program");