
The 35 lines of code are as follows.
monitor ProducerConsumer
condition full coma empty semi colon
integer count semi colon
procedure insert open parenthesis item colon integer close parenthesis semi colon
begin
if count equals to N then wait open parenthesis full close parenthesis semi colon
insert under score item open parenthesis item close parenthesis semi colon
count colon equals to count plus 1 semi colon
if count equals to 1 then signal open parenthesis empty close parenthesis
end semi colon
function remove colon integer semi colon
begin
if count equals to 0 then wait open parenthesis empty close parenthesis semi colon
remove equals to remove under score item semi colon
count colon equals to count minus 1 semi colon
if count equals to N minus 1 then signal open parenthesis full close parenthesis
end semi colon
count colon equals to 0 semi colon
end monitor semi colon
procedure producer semi colon
begin
while true do
begin
item equals to produce under score item semi colon
ProducerConsumer.insert open parenthesis item close parenthesis
end
end semi colon
procedure consumer semi colon
begin
while true do
begin
item equals to ProducerConsumer.remove semi colon
consume under score item open parenthesis item close parenthesis
end
end semi colon
Back