summaryrefslogtreecommitdiff
path: root/src/actors
diff options
context:
space:
mode:
Diffstat (limited to 'src/actors')
-rw-r--r--src/actors/scala/actors/Actor.scala9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/actors/scala/actors/Actor.scala b/src/actors/scala/actors/Actor.scala
index e0442aa586..dc9b8110bc 100644
--- a/src/actors/scala/actors/Actor.scala
+++ b/src/actors/scala/actors/Actor.scala
@@ -549,8 +549,13 @@ trait Actor extends AbstractActor {
onTimeout = Some(new TimerTask {
def run() { thisActor.send(TIMEOUT, thisActor) }
})
- Actor.timer.schedule(onTimeout.get, msec)
-
+ try {
+ Actor.timer.schedule(onTimeout.get, msec)
+ } catch {
+ case ise: IllegalStateException =>
+ Actor.timer = new Timer
+ Actor.timer.schedule(onTimeout.get, msec)
+ }
continuation = f
isDetached = true
}