home *** CD-ROM | disk | FTP | other *** search
/ cs.rhul.ac.uk / www.cs.rhul.ac.uk.zip / www.cs.rhul.ac.uk / pub / CS375 / attempt3.pc < prev    next >
Text File  |  1999-02-05  |  632b  |  44 lines

  1. program attempt3;
  2. var 
  3.   turn: integer;
  4.   shared: integer;
  5.  
  6. process P1;
  7. var
  8.   loop: integer;
  9. begin
  10.   for loop := 1 to 20 do
  11.     begin
  12.       while turn = 2 do
  13.     null;
  14.       (* enter critical section *)
  15.       shared := shared + 1;
  16.       (* leave critical section *)
  17.       turn := 2
  18.   end
  19. end;  (* P1 *)
  20.  
  21. process P2;
  22. var
  23.   loop: integer;
  24. begin
  25.   for loop := 1 to 20 do
  26.     begin
  27.       while turn = 1 do
  28.     null;
  29.       (* enter critical section *)
  30.       shared := shared + 1;
  31.       (* leave critical section *)
  32.       turn := 1
  33.   end
  34. end;  (* P2 *)
  35.  
  36. begin
  37.   turn := 1;
  38.   shared := 0;
  39.   cobegin
  40.     P1;
  41.     P2
  42.   coend;
  43.   writeln(shared)
  44. end.