summaryrefslogtreecommitdiff
path: root/src/actors
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2007-03-05 21:32:03 +0000
committerPhilipp Haller <hallerp@gmail.com>2007-03-05 21:32:03 +0000
commit93119cb1e79ca49c816cb7428e68d159a48c0369 (patch)
treed866ec477f6ca02bc7ef42ee694f02e7ed13e7ee /src/actors
parent2d80ade773cc9a74a7cbf896d53606475cdb675d (diff)
downloadscala-93119cb1e79ca49c816cb7428e68d159a48c0369.tar.gz
scala-93119cb1e79ca49c816cb7428e68d159a48c0369.tar.bz2
scala-93119cb1e79ca49c816cb7428e68d159a48c0369.zip
scala.actors: small clean-ups
Diffstat (limited to 'src/actors')
-rw-r--r--src/actors/scala/actors/Actor.scala4
-rw-r--r--src/actors/scala/actors/Future.scala10
2 files changed, 10 insertions, 4 deletions
diff --git a/src/actors/scala/actors/Actor.scala b/src/actors/scala/actors/Actor.scala
index df2ec1571b..3524f8cdb5 100644
--- a/src/actors/scala/actors/Actor.scala
+++ b/src/actors/scala/actors/Actor.scala
@@ -424,7 +424,9 @@ trait Actor extends OutputChannel[Any] {
/**
* Sends <code>msg</code> to this actor (asynchronous).
*/
- def !(msg: Any): Unit = send(msg, Actor.self.getReplyChannel)
+ def !(msg: Any): Unit = {
+ send(msg, Actor.self.getReplyChannel)
+ }
def forward(msg: Any): Unit = send(msg, Actor.sender.getReplyChannel)
diff --git a/src/actors/scala/actors/Future.scala b/src/actors/scala/actors/Future.scala
index 3ea87ae29d..f7f4220a15 100644
--- a/src/actors/scala/actors/Future.scala
+++ b/src/actors/scala/actors/Future.scala
@@ -12,8 +12,8 @@ package scala.actors
* @author Philipp Haller
*/
abstract class Future[T](val ch: InputChannel[Any]) extends Function0[T] {
+ protected var value: Option[T] = None
def isSet: boolean
- var value: Option[T] = None
}
/**
@@ -24,7 +24,7 @@ abstract class Future[T](val ch: InputChannel[Any]) extends Function0[T] {
*/
object Futures {
- def spawn[T](body: => T): Future[T] = {
+ def future[T](body: => T): Future[T] = {
case object Eval
val a = Actor.actor {
Actor.react {
@@ -34,7 +34,11 @@ object Futures {
a !! (Eval, { case any => any.asInstanceOf[T] })
}
- def alarm(t: long) = spawn { Thread.sleep(t) }
+ def alarm(t: long) = future {
+ Actor.reactWithin(t) {
+ case TIMEOUT => {}
+ }
+ }
def awaitEither[a, b](ft1: Future[a], ft2: Future[b]): Any = {
val FutCh1 = ft1.ch; val FutCh2 = ft2.ch