Closed Aaronontheweb closed 10 years ago
Working on this now
We should also have additional tests in the ActorLifecycleSpec to verify consistent behavior for this.
So is this issue technically fixed then?
Yes, it turns out that cell.Stop(ref) actually calls ref.Stop which in turn calls cell.Stop() in akka. So we do the same now.
The expected behavior is quite hard to test though, the actor is removed well after the PostStop has been called according to Akka, so I'm not sure how to test this except waiting after stopping an actor. But it is correct now as far as I can tell.
When attempting to stop a child Actor, there are a couple of different methods of doing it.
Calling
LocalActorRef.Stop()
on the child's ActorRef doesn't end the parent actor's supervision of the child, but Context.Stop(ActorRef) does - need to implement some messaging to tell the parent to stop watching the child regardless of how it died, so long as it was gracefully terminated.