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

@ -196,9 +196,10 @@ 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 ``getContext().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
----------