diff options
author | Philipp Haller <hallerp@gmail.com> | 2006-11-16 15:39:25 +0000 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2006-11-16 15:39:25 +0000 |
commit | 9f54fe8bd04e9820cfd04e0ee18da12395269129 (patch) | |
tree | 00089fb85501f6167434aadb4e9064696b738eea /src | |
parent | 466db7220a4325c84d43cc55c517d0cb8240310d (diff) | |
download | scala-9f54fe8bd04e9820cfd04e0ee18da12395269129.tar.gz scala-9f54fe8bd04e9820cfd04e0ee18da12395269129.tar.bz2 scala-9f54fe8bd04e9820cfd04e0ee18da12395269129.zip |
Small fix in actor exit code.
Diffstat (limited to 'src')
-rw-r--r-- | src/actors/scala/actors/Actor.scala | 2 | ||||
-rw-r--r-- | src/actors/scala/actors/Channel.scala | 4 | ||||
-rw-r--r-- | src/actors/scala/actors/Reaction.scala | 5 |
3 files changed, 7 insertions, 4 deletions
diff --git a/src/actors/scala/actors/Actor.scala b/src/actors/scala/actors/Actor.scala index 6484f3f454..c4d36824eb 100644 --- a/src/actors/scala/actors/Actor.scala +++ b/src/actors/scala/actors/Actor.scala @@ -444,7 +444,7 @@ trait Actor extends OutputChannel[Any] { resetActor() /** - * Starts this reactor. + * Starts this actor. */ def start(): Unit = Scheduler.execute(new Reaction(this)) diff --git a/src/actors/scala/actors/Channel.scala b/src/actors/scala/actors/Channel.scala index db988aee63..11497e8a10 100644 --- a/src/actors/scala/actors/Channel.scala +++ b/src/actors/scala/actors/Channel.scala @@ -45,6 +45,8 @@ class Channel[Msg] extends InputChannel[Msg] with OutputChannel[Msg] { private[actors] var waitingFor: Msg => boolean = waitingForNone private[actors] var waitingForSender: Actor = null + private[actors] var isSuspended = false + //private val messageQueue = new MessageQueue[Msg] private val mailbox = new scala.collection.mutable.Queue[Pair[Msg, Actor]] @@ -103,8 +105,6 @@ class Channel[Msg] extends InputChannel[Msg] with OutputChannel[Msg] { */ def forward(msg: Msg): unit = send(msg, receiver.sender) - private[actors] var isSuspended = false - /** * Receives a message from this <code>Channel</code>. */ diff --git a/src/actors/scala/actors/Reaction.scala b/src/actors/scala/actors/Reaction.scala index fb9064989f..571d32aa44 100644 --- a/src/actors/scala/actors/Reaction.scala +++ b/src/actors/scala/actors/Reaction.scala @@ -65,6 +65,9 @@ private[actors] class Reaction(a: Actor, throw new InterruptedException a.exit("normal") + + if (currentThread.isInterrupted()) + throw new InterruptedException } catch { case ie: InterruptedException => { @@ -76,7 +79,7 @@ private[actors] class Reaction(a: Actor, } case t: Throwable => { log(t) - a.exit(t.toString()) + a.exitLinked() } } finally { |