reverted back to call-by-name parameter

This commit is contained in:
Patrik Nordwall 2011-04-07 22:37:36 +02:00
parent 9be6314484
commit 3da35fb191
2 changed files with 5 additions and 4 deletions

View file

@ -20,7 +20,7 @@ trait RemoteModule {
val UUID_PREFIX = "uuid:".intern
def optimizeLocalScoped_?(): Boolean //Apply optimizations for remote operations in local scope
protected[akka] def notifyListeners(message: Any): Unit
protected[akka] def notifyListeners(message: => Any): Unit
private[akka] def actors: ConcurrentHashMap[String, ActorRef]
private[akka] def actorsByUuid: ConcurrentHashMap[String, ActorRef]
@ -227,7 +227,7 @@ abstract class RemoteSupport extends ListenerManagement with RemoteServerModule
}
protected override def manageLifeCycleOfListeners = false
protected[akka] override def notifyListeners(message: Any): Unit = super.notifyListeners(message)
protected[akka] override def notifyListeners(message: => Any): Unit = super.notifyListeners(message)
private[akka] val actors = new ConcurrentHashMap[String, ActorRef]
private[akka] val actorsByUuid = new ConcurrentHashMap[String, ActorRef]

View file

@ -50,12 +50,13 @@ trait ListenerManagement {
*/
def hasListener(listener: ActorRef): Boolean = listeners.contains(listener)
protected[akka] def notifyListeners(message: Any) {
protected[akka] def notifyListeners(message: => Any) {
if (hasListeners) {
val msg = message
val iterator = listeners.iterator
while (iterator.hasNext) {
val listener = iterator.next
if (listener.isRunning) listener ! message
if (listener.isRunning) listener ! msg
}
}
}