diff options
-rw-r--r-- | src/actors/scala/actors/Actor.scala | 18 | ||||
-rw-r--r-- | src/actors/scala/actors/ActorProxy.scala | 28 | ||||
-rw-r--r-- | src/actors/scala/actors/Reaction.scala | 4 |
3 files changed, 12 insertions, 38 deletions
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 * <code>receive</code>, <code>react</code>, <code>reply</code>, * 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, <i>LAMP-REPORT-2007-001, EPFL</i> * </p> * - * @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] { * <b>case</b> TIMEOUT <b>=></b> ... * }</pre> * - * @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. * </p> * - * @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 <code>ActorProxy</code>provides 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() {} /** - * <p> - * Terminates execution of <code>self</code> with the following - * effect on linked actors: - * </p> - * <p> - * For each linked actor <code>a</code> with - * <code>trapExit</code> set to <code>true</code>, send message - * <code>Exit(self, reason)</code> to <code>a</code>. - * </p> - * <p> - * For each linked actor <code>a</code> with - * <code>trapExit</code> set to <code>false</code> (default), - * call <code>a.exit(reason)</code> if - * <code>reason != 'normal</code>. - * </p> - * - * @param reason the exit reason of the interrupted thread. + * Terminates with exit reason <code>'normal</code>. */ - 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 <code>Nothing</code>. * </p> * - * @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 <code>Actor</code> with a * <code>java.lang.Runnable</code>. * - * @version 0.9.4 + * @version 0.9.5 * @author Philipp Haller */ private[actors] class Reaction(a: Actor, |