diff options
author | Philipp Haller <hallerp@gmail.com> | 2007-05-20 17:04:35 +0000 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2007-05-20 17:04:35 +0000 |
commit | 72b474d620e9f37c13dd7b7f6e5ffc62d1ae327f (patch) | |
tree | 0e6c1d188eca834aa25ebf4835bb0ebf105cdff1 | |
parent | a43e6b1242018f538a25efd70e74ab87abc8691d (diff) | |
download | scala-72b474d620e9f37c13dd7b7f6e5ffc62d1ae327f.tar.gz scala-72b474d620e9f37c13dd7b7f6e5ffc62d1ae327f.tar.bz2 scala-72b474d620e9f37c13dd7b7f6e5ffc62d1ae327f.zip |
Fixed memory leak.
-rw-r--r-- | src/actors/scala/actors/Actor.scala | 11 | ||||
-rw-r--r-- | src/actors/scala/actors/Reaction.scala | 2 |
2 files changed, 3 insertions, 10 deletions
diff --git a/src/actors/scala/actors/Actor.scala b/src/actors/scala/actors/Actor.scala index 7b0f064836..251640dc65 100644 --- a/src/actors/scala/actors/Actor.scala +++ b/src/actors/scala/actors/Actor.scala @@ -275,7 +275,7 @@ trait Actor extends OutputChannel[Any] { private[actors] var isSuspended = false private val mailbox = new MessageQueue - private var sessions: List[Channel[Any]] = Nil + private[actors] var sessions: List[Channel[Any]] = Nil private def send(msg: Any, session: Channel[Any]) = synchronized { tick() @@ -616,15 +616,6 @@ trait Actor extends OutputChannel[Any] { throw new ExitActorException } - /** - * Repeatedly execute <code>body</code>. - * - * @param body the code block to be executed - */ - /*def loop(body: => Unit): Nothing = { - Actor.seq(body, loop(body)) - }*/ - private[actors] var links: List[Actor] = Nil /** diff --git a/src/actors/scala/actors/Reaction.scala b/src/actors/scala/actors/Reaction.scala index a6eaa18833..3a50a9af06 100644 --- a/src/actors/scala/actors/Reaction.scala +++ b/src/actors/scala/actors/Reaction.scala @@ -72,6 +72,8 @@ private[actors] class Reaction(a: Actor, } } } + if (!a.sessions.isEmpty) + a.sessions = a.sessions.tail Actor.tl.set(saved) } |