Dear the Admin and all members.
Could you please help me to write this algorithm into a complete code?
1 var choosing: shared array[0..n-1] of boolean;
2 number: shared array[0..n-1] of integer;
...
3 repeat
4 choosing[i] := true;
5 number[i] := max(number[0],number[1],...,number[n-1]) + 1;
6 choosing[i] := false;
7 for j := 0 to n-1 do begin
8 while choosing[j] do (* nothing *);
9 while number[j] <> 0 and
10 (number[j], j) < (number[i],i) do
11 (* nothing *);
12 end;
13 (* critical section *)
14 number[i] := 0;
15 (* remainder section *)
16 until false;
Thanx in advance.