I'm currently trying to track down some very strange behavior in my actor which is probably a race condition. What I'm basically doing is to create actor children, use context.watch for each created child and put the ActorRef from actorOf into a map along with other data associated with the actor. Upon receiving a Terminated message I'm using the provided ActorRef as key for the map lookup and remove it from the map (mutable.HashMap) afterwards. Although I'm still not 100% sure why the code doesn't work in some rare cases, the following statement in the akka docs made me suspicious: "Supervision related parent-child communication happens by special system messages that have their own mailboxes separate from user messages. This implies that supervision related events are not deterministically ordered relative to ordinary messages." Does that mean there's a chance that an actors receive function is called concurrently with multiple Terminated messages? Possibly even along with a concurrent regular actor message invocation?
-- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
