© Egon Börger:
Introduction to Async ASMs
Enquire º forall s ÎSlave s.asked := true
Master/Slave Agreement ASMs
OrderOrCancel º
clear answer
if for some s ÎSlave s.answer = refuse
then order:=cancel
else order:=job
Answers Arrived º forall s ÎSlave
s.answer Î {accept, refuse}
idle
OrderOrCancel
Enquire
Answer º if asked then
choose r Î {accept, refuse}
answer:=r
asked:=false
OrderArrived º order Î { job, cancel }
idle
Answer
busy
no
yes
done