------ art_37534_18970922.1199871683791 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline 2008/1/9, ara howard <ara.t.howard / gmail.com>: > so.... why does installing a static finalizer work ok, but a dynamic > one leaks memory!? > > i'm nice and confused now. I'd say you picked the wrong class for your tests - apparently a lambda uses an array somehow. This is what I see from the modified script (attached): 10:38:52 /cygdrive/c/Temp $ ./a.rb leak --- Foo: 0 --- Foo: 1 --- Foo: 1 --- Foo: 1 --- Foo: 1 --- Foo: 1 --- Foo: 1 10:39:04 /cygdrive/c/Temp $ ./a.rb noleak --- Foo: 0 --- Foo: 1 --- Foo: 1 --- Foo: 1 --- Foo: 1 --- Foo: 1 --- Foo: 1 10:39:08 /cygdrive/c/Temp $ ruby -v ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-cygwin] :-) Kind regards robert -- use.inject do |as, often| as.you_can - without end ------ art_37534_18970922.1199871683791 Content-Type: application/x-ruby; name=a.rb Content-Transfer-Encoding: base64 X-Attachment-Id: f_fb7okx20 Content-Disposition: attachment; filename=a.rb IyEvYmluL2VudiBydWJ5CgojCiMgZGlzdGlsbGVkIGJlaGF2aW91ciBmcm9tIGRpa2UucmIKIwpj bGFzcyBGb287ZW5kCgogIGNsYXNzIENsYXNzCiAgICBGaW5hbGl6ZXIgPSBsYW1iZGEge30KCiAg ICBkZWYgbGVha19mcmVlX2ZpbmFsaXplcgogICAgICBGaW5hbGl6ZXIKICAgIGVuZAoKICAgIGRl ZiBsZWFreV9maW5hbGl6ZXIKICAgICAgIyBwIHNlbGYKICAgICAgbGFtYmRhIHt9CiAgICBlbmQK CiAgICBkZWYgZmluYWxpemVyCiAgICAgICVyL2xlYWsvID1+IEFSR1YuZmlyc3QgPyBsZWFreV9m aW5hbGl6ZXIgOiBsZWFrX2ZyZWVfZmluYWxpemVyCiAgICBlbmQKCiAgICBkZWYgbmV3ICphLCAm YgogICAgICBvYmplY3QgPSBhbGxvY2F0ZQogICAgICBPYmplY3RTcGFjZS5kZWZpbmVfZmluYWxp emVyIG9iamVjdCwgZmluYWxpemVyCiAgICAgIG9iamVjdC5zZW5kIDppbml0aWFsaXplLCAqYSwg JmIKICAgICAgb2JqZWN0CiAgICBlbmQKICBlbmQKCgojCiMgdGhlIGFib3ZlIG1ha2VzIHRoaXMg Y29kZSBsZWFrIGlmZiBBUkdWIGhhcyAibGVhayIgaW4gaXQKIwogIHJlcXVpcmUgInlhbWwiCgog IDcudGltZXMgewogICAgR0Muc3RhcnQKICAgICMgT2JqZWN0U3BhY2UuZ2FyYmFnZV9jb2xsZWN0 CgogICAgeSBGb28ubmFtZSA9PiBPYmplY3RTcGFjZS5lYWNoX29iamVjdChGb28pe30KCiAgICBG b28ubmV3CiAgfQoK ------ art_37534_18970922.1199871683791--