Merge pull request #845 from akka/wip-2680-FSM-receive-∂π
make FSM.receive overridable, see #2680
This commit is contained in:
commit
4c4472f01b
2 changed files with 9 additions and 1 deletions
|
|
@ -521,7 +521,7 @@ trait FSM[S, D] extends Listeners with ActorLogging {
|
|||
* Main actor receive() method
|
||||
* *******************************************
|
||||
*/
|
||||
override final def receive: Receive = {
|
||||
override def receive: Receive = {
|
||||
case TimeoutMarker(gen) ⇒
|
||||
if (generation == gen) {
|
||||
processMsg(StateTimeout, "state timeout")
|
||||
|
|
|
|||
|
|
@ -124,6 +124,14 @@ obvious that an actor is actually created:
|
|||
:include: simple-fsm
|
||||
:exclude: fsm-body
|
||||
|
||||
.. note::
|
||||
|
||||
The FSM trait defines a ``receive`` method which handles internal messages
|
||||
and passes everything else through to the FSM logic (according to the
|
||||
current state). When overriding the ``receive`` method, keep in mind that
|
||||
e.g. state timeout handling depends on actually passing the messages through
|
||||
the FSM logic.
|
||||
|
||||
The :class:`FSM` trait takes two type parameters:
|
||||
|
||||
#. the supertype of all state names, usually a sealed trait with case objects
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue