Akka Gotchas when dealing with Futures -


consider following code bit:

def receive = {   case computeresult(itemid: long) =>     //val originalsender = sender     computeresult(itemid).map { result =>       originalsender ! result     } } 

the computeresult results in future, how introduction of val prevent sending result wrong sender? let have different senders (sender1 , sender2).

sender1 first sends message followed sender2. without val in method above, see there possibility sender2 result meant sender1.

what don't how introduction of val prevent me scenario described?

sender function (that's why convention akka 2.3 onwards write sender()). binding value originalsender, can close on immutable value , know won't change, if message comes in before future completeresult completes.

because receive function, every invocation result in new local value called originalsender.


Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -