diff --git a/doc/report/figures/fsm/full_mgm2_agent.gv b/doc/report/figures/fsm/full_mgm2_agent.gv index ab51fc721ba78d56163d2f2c33a00cdb3cbd59ac..85eb010fef04970648fab9709097d6078667194d 100644 --- a/doc/report/figures/fsm/full_mgm2_agent.gv +++ b/doc/report/figures/fsm/full_mgm2_agent.gv @@ -39,6 +39,10 @@ digraph finite_state_machine { stash "]; + WaitingRoleAssignment -> WaitingRoleAssignment [label = "neighbour : InformDelta(d) => + stash + "]; + WaitingRoleAssignment -> OffererWaitingValues [ label = "self : DetermineSubset(true) => unstashall "]; diff --git a/src/main/scala/org/scadcop/solver/decentralized/mgm2/AgentBehaviour.scala b/src/main/scala/org/scadcop/solver/decentralized/mgm2/AgentBehaviour.scala index e1904d3aee79259f7b0526d4fecb3c1ecb1b9a5e..3ec17e6749413103825d7f6f800773c43e13beb3 100644 --- a/src/main/scala/org/scadcop/solver/decentralized/mgm2/AgentBehaviour.scala +++ b/src/main/scala/org/scadcop/solver/decentralized/mgm2/AgentBehaviour.scala @@ -104,6 +104,11 @@ class AgentBehaviour(variable: Variable, */ when(WaitingForRole){ + case Event(InformDelta(_), mind) => { + stash + stay using mind + } + case Event(MakeOffer(_), mind) => { stash stay using mind