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.

Reply via email to