In Scala, if I have a simple class as follows:
val calc = actor { var sum = 0 loop { react { case Add(n) => sum += n case Req
You don't need to mark them as volatile. The execution of your code isn't inside a synchronized block, but the actor will always pass through one before your code is invoked, thus forcing memory into a consistent state across threads.