From f98d917d42b6a5b38e659450c683f93d7ffd9560 Mon Sep 17 00:00:00 2001 From: Philipp Haller Date: Fri, 29 May 2009 15:22:52 +0000 Subject: Added long-running memory-leak test for Actor. --- test/long-running/jvm/memleak2_actor.scala | 39 ++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 test/long-running/jvm/memleak2_actor.scala (limited to 'test/long-running/jvm/memleak2_actor.scala') diff --git a/test/long-running/jvm/memleak2_actor.scala b/test/long-running/jvm/memleak2_actor.scala new file mode 100644 index 0000000000..eeb017f086 --- /dev/null +++ b/test/long-running/jvm/memleak2_actor.scala @@ -0,0 +1,39 @@ +import scala.actors._ +import Actor._ + +case object Start +case object EndMe + +class A extends Actor { + def act = loop { + react { + case Start => + case EndMe => + exit() + } + } +} + +object Test { + + def z(in: Long) = if (in / 1024L == 0L) in + else if (in / (1024L * 1024L) == 0L) (in / 1024L).toString + "K" + else (in / (1024L * 1024L)).toString + "M" + + def main(args: Array[String]) { + val rt = Runtime.getRuntime() + for (o <- 1 to 200000) { + println("Outer [2AN] "+o) + var a: List[A] = Nil + for (i <- 1 to 10000) { + var t = new A + a = t :: a + t.start + t ! Start + } + for (act <- a) act ! EndMe + rt.gc() + println("Free "+z(rt.freeMemory())+" total "+z(rt.totalMemory())) + } + } +} -- cgit v1.2.3