diff options
author | Philipp Haller <hallerp@gmail.com> | 2009-05-29 15:22:52 +0000 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2009-05-29 15:22:52 +0000 |
commit | f98d917d42b6a5b38e659450c683f93d7ffd9560 (patch) | |
tree | a2e3016db0febd436a1bd5b23c4b4ac153c84318 | |
parent | da332a0e42e38f62f3617998e5e12af2586fb331 (diff) | |
download | scala-f98d917d42b6a5b38e659450c683f93d7ffd9560.tar.gz scala-f98d917d42b6a5b38e659450c683f93d7ffd9560.tar.bz2 scala-f98d917d42b6a5b38e659450c683f93d7ffd9560.zip |
Added long-running memory-leak test for Actor.
-rw-r--r-- | test/long-running/jvm/memleak2_actor.scala | 39 |
1 files changed, 39 insertions, 0 deletions
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())) + } + } +} |