On 03/24/16 12:25, Mohammed Al-Mahfoudh wrote:

- If an ask statement, that sends a message /m1/ from /a1/ to /a2/ (actors), must /a2/ reply right away in the same "receive" invocation? or we can have another /receive/ invocation reply to that ask? (I mean by reply also resolving the future)

no, a2 does not need to reply immediately in the same receive invocation. yes, another iteration of the receive loop can reply. another actor even can reply to the future.

- How can that be implemented (abstractly speaking) since /a2/ doesn't have an explicit handle for the Future object returned by the above ask?

when you call ask(), what happens under the covers is a temporary actor is created as a mediator between a1 and a2. this temporary actor (call it temp1) holds the future. when the message is sent from a1 to a2, ask() actually sends the message to temp1, which then resends the message. this is important, because it changes the sender address to that of temp1, not a1. when a2 receives the message, sender() == temp1. when a2 replies, temp1 receives the message and completes the future.

- Is there a "mapping" between which message sent back to /a1/ resolves which Future it asked for? If so, how to map that? (do you encapsulate the original message /m1/ inside the later message sent from a1 to a2 for replying, and then the ActorSystem knows how to resolve that Future in the destination actor?)


no, there is no mapping. you have to do so yourself (if that is important to you) by mapping the future returned from ask().

-Michael

--
     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 https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to