Threads grow Generation 2
On Windows and Linux even short-lived threads always seem to end up in
generation 2 - see below. Is that expected behaviour or a leak?
Thanks,
Edi.
CL-USER 1 > (defparameter *a* 0)
*A*
CL-USER 2 > (defun foo (n)
(dotimes (i n)
(mp:process-run-function "foo" nil (lambda ()
(incf *a*)))))
FOO
CL-USER 3 > (compile *)
FOO
NIL
NIL
CL-USER 4 > (room)
Generation 0: Total Size 1163K, Allocated 216K, Free 934K
Generation 1: Total Size 1858K, Allocated 798K, Free 1052K
Generation 2: Total Size 2196K, Allocated 1544K, Free 643K
Generation 3: Total Size 23527K, Allocated 23084K, Free 426K
Total Size 28742K, Allocated 25643K, Free 3057K
CL-USER 5 > (foo 300)
NIL
CL-USER 6 > (room)
Generation 0: Total Size 1163K, Allocated 226K, Free 925K
Generation 1: Total Size 1858K, Allocated 907K, Free 942K
Generation 2: Total Size 21204K, Allocated 19689K, Free 1503K
Generation 3: Total Size 23527K, Allocated 23084K, Free 426K
Total Size 47750K, Allocated 43907K, Free 3797K