diff options
author | Philipp Haller <hallerp@gmail.com> | 2006-10-02 15:29:29 +0000 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2006-10-02 15:29:29 +0000 |
commit | 6c710d403e147a81eeb739e20aba07ba47c45b70 (patch) | |
tree | ca301ea58b9a9eb4ec403e4f94cc8b06b3ef9af2 | |
parent | 942bb16fc5543c5876c4870e3de4bcc49ea9610f (diff) | |
download | scala-6c710d403e147a81eeb739e20aba07ba47c45b70.tar.gz scala-6c710d403e147a81eeb739e20aba07ba47c45b70.tar.bz2 scala-6c710d403e147a81eeb739e20aba07ba47c45b70.zip |
Added method for defining an actor with a (type...
Added method for defining an actor with a (typed) input channel.
-rw-r--r-- | src/actors/scala/actors/Actor.scala | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/actors/scala/actors/Actor.scala b/src/actors/scala/actors/Actor.scala index 4397032b60..f6dc77d672 100644 --- a/src/actors/scala/actors/Actor.scala +++ b/src/actors/scala/actors/Actor.scala @@ -28,6 +28,15 @@ object Actor { actor } + def actor[a](ch: Channel[a])(body: => Unit): ActorThread = synchronized { + val actor = new ActorThread { + def act() = body + } + ch.receiver = actor + actor.start() + actor + } + def reactor(body: => Unit): Reactor = synchronized { val reactor = new Reactor { def act() = body @@ -272,7 +281,7 @@ class ActorProxy(t: Thread) extends ThreadedActor { def act(): Unit = {} def exit(reason: String): Unit = { exitReason = reason - Thread.currentThread().interrupt() + t.interrupt() } } |