From 9f54fe8bd04e9820cfd04e0ee18da12395269129 Mon Sep 17 00:00:00 2001 From: Philipp Haller Date: Thu, 16 Nov 2006 15:39:25 +0000 Subject: Small fix in actor exit code. --- src/actors/scala/actors/Actor.scala | 2 +- src/actors/scala/actors/Channel.scala | 4 ++-- src/actors/scala/actors/Reaction.scala | 5 ++++- 3 files changed, 7 insertions(+), 4 deletions(-) (limited to 'src/actors') 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 Channel. */ 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 { -- cgit v1.2.3