summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2007-04-24 12:07:15 +0000
committerPhilipp Haller <hallerp@gmail.com>2007-04-24 12:07:15 +0000
commitb1936ece49dce43754892a8e5ed81d243ad7e135 (patch)
tree958947a4f2818b5e77cc77d42b1ca9f21ac52701 /src
parentb8fc3bed09e9ebba8c9f67c5bb4a63e89b7af3a0 (diff)
downloadscala-b1936ece49dce43754892a8e5ed81d243ad7e135.tar.gz
scala-b1936ece49dce43754892a8e5ed81d243ad7e135.tar.bz2
scala-b1936ece49dce43754892a8e5ed81d243ad7e135.zip
Small fix in ActorProxy.
Diffstat (limited to 'src')
-rw-r--r--src/actors/scala/actors/Actor.scala18
-rw-r--r--src/actors/scala/actors/ActorProxy.scala28
-rw-r--r--src/actors/scala/actors/Reaction.scala4
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>=&gt;</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,