From b1936ece49dce43754892a8e5ed81d243ad7e135 Mon Sep 17 00:00:00 2001 From: Philipp Haller Date: Tue, 24 Apr 2007 12:07:15 +0000 Subject: Small fix in ActorProxy. --- src/actors/scala/actors/Actor.scala | 18 +++++------------- src/actors/scala/actors/ActorProxy.scala | 28 +++++----------------------- src/actors/scala/actors/Reaction.scala | 4 ++-- 3 files changed, 12 insertions(+), 38 deletions(-) (limited to 'src') diff --git a/src/actors/scala/actors/Actor.scala b/src/actors/scala/actors/Actor.scala index 080dc155fa..cfb2041d64 100644 --- a/src/actors/scala/actors/Actor.scala +++ b/src/actors/scala/actors/Actor.scala @@ -19,7 +19,7 @@ import scala.compat.Platform * receive, react, reply, * etc. * - * @version 0.9.4 + * @version 0.9.5 * @author Philipp Haller */ object Actor { @@ -256,7 +256,7 @@ object Actor { * Philipp Haller and Martin Odersky, LAMP-REPORT-2007-001, EPFL *

* - * @version 0.9.4 + * @version 0.9.5 * @author Philipp Haller */ trait Actor extends OutputChannel[Any] { @@ -688,15 +688,7 @@ trait Actor extends OutputChannel[Any] { // Assume !links.isEmpty private[actors] def exitLinked(reason: AnyRef) { exitReason = reason - exiting = true - // remove this from links - links = links.remove(this.==) - // exit linked processes - links.foreach((linked: Actor) => { - unlink(linked) - if (!linked.exiting) - linked.exit(this, exitReason) - }) + exitLinked() } // Assume !this.exiting @@ -734,7 +726,7 @@ trait Actor extends OutputChannel[Any] { * case TIMEOUT => ... * } * - * @version 0.9.4 + * @version 0.9.5 * @author Philipp Haller */ case object TIMEOUT @@ -747,7 +739,7 @@ case class Exit(from: Actor, reason: AnyRef) * executions. *

* - * @version 0.9.4 + * @version 0.9.5 * @author Philipp Haller */ private[actors] class SuspendActorException extends Throwable { diff --git a/src/actors/scala/actors/ActorProxy.scala b/src/actors/scala/actors/ActorProxy.scala index a195ed8f3d..d35ab4ad06 100644 --- a/src/actors/scala/actors/ActorProxy.scala +++ b/src/actors/scala/actors/ActorProxy.scala @@ -18,7 +18,7 @@ import java.lang.Thread * The class ActorProxyprovides a dynamic actor proxy for normal * Java threads. * - * @version 0.9.4 + * @version 0.9.5 * @author Philipp Haller */ private[actors] class ActorProxy(t: Thread) extends Actor { @@ -26,31 +26,13 @@ private[actors] class ActorProxy(t: Thread) extends Actor { def act() {} /** - *

- * Terminates execution of self with the following - * effect on linked actors: - *

- *

- * For each linked actor a with - * trapExit set to true, send message - * Exit(self, reason) to a. - *

- *

- * For each linked actor a with - * trapExit set to false (default), - * call a.exit(reason) if - * reason != 'normal. - *

- * - * @param reason the exit reason of the interrupted thread. + * Terminates with exit reason 'normal. */ - override def exit(reason: AnyRef): Nothing = { - kill() + override def exit(): Nothing = { // links - if (!links.isEmpty) { - exitReason = reason + if (!links.isEmpty) exitLinked() - } throw new InterruptedException } + } diff --git a/src/actors/scala/actors/Reaction.scala b/src/actors/scala/actors/Reaction.scala index 4d282880a5..e53c054081 100644 --- a/src/actors/scala/actors/Reaction.scala +++ b/src/actors/scala/actors/Reaction.scala @@ -19,7 +19,7 @@ import java.lang.{InterruptedException, Runnable} * return type Nothing. *

* - * @version 0.9.4 + * @version 0.9.5 * @author Philipp Haller */ private[actors] class ExitActorException extends Throwable @@ -29,7 +29,7 @@ private[actors] class ExitActorException extends Throwable * an instance of an Actor with a * java.lang.Runnable. * - * @version 0.9.4 + * @version 0.9.5 * @author Philipp Haller */ private[actors] class Reaction(a: Actor, -- cgit v1.2.3