From d3b1c7957eea64ba4c2dc7729696a97f15590bf8 Mon Sep 17 00:00:00 2001 From: Philipp Haller Date: Tue, 18 Sep 2007 12:02:32 +0000 Subject: Added clearProxy method to Actor object. --- src/actors/scala/actors/Actor.scala | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src') 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 @@ -56,6 +56,21 @@ object Actor { tl.set(new ActorProxy(currentThread)) } + /** + * Removes any reference to an ActorProxy + * 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) + } + /** *

This function is used for the definition of actors.

*

The following example demonstrates its usage:

-- 
cgit v1.2.3