summaryrefslogtreecommitdiff
path: root/src/actors
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2009-01-20 11:34:16 +0000
committerPhilipp Haller <hallerp@gmail.com>2009-01-20 11:34:16 +0000
commit51615fcd586f9752b92a3bbce27b4ed563f5738a (patch)
tree4f55ba1b2dd49ddd6b111b91e07da257f45c5946 /src/actors
parente3d105a0cb1143ce189415bd489b0da4bfa42628 (diff)
downloadscala-51615fcd586f9752b92a3bbce27b4ed563f5738a.tar.gz
scala-51615fcd586f9752b92a3bbce27b4ed563f5738a.tar.bz2
scala-51615fcd586f9752b92a3bbce27b4ed563f5738a.zip
Fixed #1652.
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
}