summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2007-09-18 12:02:32 +0000
committerPhilipp Haller <hallerp@gmail.com>2007-09-18 12:02:32 +0000
commitd3b1c7957eea64ba4c2dc7729696a97f15590bf8 (patch)
treeabfa19532899e5fe13214552922318ed56866ab1 /src
parent00eed346f23a1aaff3b9e4722a70ffcd499600c2 (diff)
downloadscala-d3b1c7957eea64ba4c2dc7729696a97f15590bf8.tar.gz
scala-d3b1c7957eea64ba4c2dc7729696a97f15590bf8.tar.bz2
scala-d3b1c7957eea64ba4c2dc7729696a97f15590bf8.zip
Added clearProxy method to Actor object.
Diffstat (limited to 'src')
-rw-r--r--src/actors/scala/actors/Actor.scala15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/actors/scala/actors/Actor.scala b/src/actors/scala/actors/Actor.scala
index cba7a8c4c0..3f1d6bf161 100644
--- a/src/actors/scala/actors/Actor.scala
+++ b/src/actors/scala/actors/Actor.scala
@@ -57,6 +57,21 @@ object Actor {
}
/**
+ * Removes any reference to an <code>ActorProxy</code>
+ * currently stored in thread-local storage.
+ *
+ * This allows to release references from threads that are
+ * potentially long-running or being re-used (e.g. inside
+ * a thread pool). Permanent references in thread-local storage
+ * are a potential memory leak.
+ */
+ def clearProxy {
+ val a = tl.get.asInstanceOf[Actor]
+ if ((null ne a) && a.isInstanceOf[ActorProxy])
+ tl.set(null)
+ }
+
+ /**
* <p>This function is used for the definition of actors.</p>
* <p>The following example demonstrates its usage:</p><pre>
* import scala.actors.Actor._