Mr. Blue
Mr. Blue

Reputation: 51

How is the mailbox (message queue) implemented in Scala Actors?

Behind the scenes, how is a mailbox (an actor's message queue) implemented in Scala Actors?

I thought it was MessageQueue, but it's been deprecated with the note that "this class is going to be removed in a future release". It looks like it might be in Channel, but I want the details of how the message queue itself is implemented.

Upvotes: 5

Views: 594

Answers (1)

RD1
RD1

Reputation: 3325

See: http://lampsvn.epfl.ch/trac/scala/browser/scala/tags/R_2_8_0_final/src/library/scala/concurrent/MailBox.scala
It looks like it's basically just a linked list, which is bypassed if there's a waiting receiver when a send is done. Senders and receivers synchronize on the MailBox object, with senders notifying to wake waiting receivers.

Upvotes: 3

Related Questions