object SenderTest extends App {
val s = ActorSystem("test")
val ar = s.actorOf(Props[A], "Aactor")
ar ! "abc"
}
class A extends Actor {
val sender_ = sender()
override def receive: Receive = {
case _: String => {
println("inside A receive block")
val b = context.actorOf(Props[B], "Bactor")
b ! 12
}
}
}
class B extends Actor {
val sender_ = sender()
override def receive: Receive = {
case _: Int => {
println(sender_)
println("inside B receive block")
sender_ ! 22
}
}
}
I was expecting println(sender_) to print actor A information, but it's printing dead letters. As it's called from actor A, I don't understand why it's printing dead letters. How do I modify this so that I can get the sender's reference?