system DinnerDate
{
boolean garbage := true;
boolean cleanHands := true;
boolean quiet := true;
boolean dinner := false;
boolean present := false;
active thread MAIN()
{
while true do
choose
when <cleanHands> do // cook
dinner := true;
when <quiet> do // wrap
present := true;
do // carry
garbage := false;
cleanHands := false;
do // dolly
garbage := false;
quiet := false;
when <dinner && present && !garbage> do // done
assert false;
end
end
}
}
|