«« ( Date ) »» // «« ( Thread ) »» // drs - 2004

Resenje

by Zaharije Radivojevic
sreda, 15. septembar 2004 - 12:37.


Postovani,

U nastavku je resenje iz septembra

Pozdrav
Zaharije

var Captain : boolean;
begin
Captain := false;

wait (mutex);
groupA := groupA + 1;
if groupA = 4 then
begin
signal (groupASem);
signal (groupASem);
signal (groupASem);
signal (groupASem);
groupA := 0;
Captain = true
end
else if (groupA = 2) and (groupB >= 2) then
begin
signal (groupASem);
signal (groupASem);
signal (groupBSem);
signal (groupBSem);
groupB := groupB - 2;
groupA := 0;
Captain = true
end
else
signal (mutex)

wait (groupAem);

board ();
wait (barrier);//Boarding officer

if Captain then
signal (mutex);
rowBoat ()
end
end;