clean up DeathWatch semantics, see #3222

- DeathPactException => Stop in defaultStrategy
- ensure that after calling `context unwatch ref` we will not process a
  Terminated(`ref`) anymore, even if it was already enqueued (i.e.
  unwatch() happens between DeathWatchNotification and Terminated)
This commit is contained in:
Roland 2013-04-13 23:46:12 +02:00
parent d5a658f433
commit 0e8b52d732
8 changed files with 101 additions and 18 deletions

View file

@ -310,9 +310,9 @@ monitoring of an already terminated actor leads to the immediate generation of
the :class:`Terminated` message.
It is also possible to deregister from watching another actors liveliness
using ``context.unwatch(target)``, but obviously this cannot guarantee
non-reception of the :class:`Terminated` message because that may already have
been queued.
using ``context.unwatch(target)``. This works even if the :class:`Terminated`
message has already been enqueued in the mailbox; after calling :meth:`unwatch`
no :class:`Terminated` message for that actor will be processed anymore.
Start Hook
----------