31
edits
(Clarifications about IPDL state machine semantics) |
|||
Line 450: | Line 450: | ||
* Protocol state machines are optional, but strongly encouraged. Even simple state machines are useful. | * Protocol state machines are optional, but strongly encouraged. Even simple state machines are useful. | ||
* All actor states, trigger matching, and transitions are managed by IPDL-generated code. Your C++ code need not manage these things. | * All actor states, trigger matching, and transitions are managed by IPDL-generated code. Your C++ code need not manage these things. | ||
* All messages sent and received are checked against the protocol's state machine. ''If a message violates the state machine semantics defined in the IPDL code, the child process containing the child actor will be terminated with extreme prejudice, and all parent actors made invalid!'' It is up to the developer to make sure that this never happens. | * All messages sent and received are checked against the protocol's state machine. ''If a message violates the state machine semantics defined in the IPDL code, the child process containing the child actor will be terminated with extreme prejudice, and all parent actors will be made invalid!'' It is up to the developer to make sure that this never happens. | ||
* Lots of syntactic sugar is possible for state machine definitions. Ping the Electrolysis team if you have a good proposal. | * Lots of syntactic sugar is possible for state machine definitions. Ping the Electrolysis team if you have a good proposal. | ||
edits