in reply to Re: Cleaning up threads so they do not leak memory. (Win32)
in thread Cleaning up threads so they do not leak memory. (Win32)

You might find this version of the OP code useful--or not:)

It uses tasklist.exe to get the memory stat rather than Win32::API as I have had great problems with using that module with threads in the past and despite several attempts to work out why, my XS foo isn't strong enough.

#! perl -slw use strict; use threads; sub mem { my( $usage ) = `tasklist /NH /FI \"pid eq $$\" ` =~ m[ (\S+) \s+ +K \s* $ ]x; return $usage; } sub threadTest{ sleep 1 } my $startmem = mem; print "StartMem: $startmem KB"; for my $pass ( 1 .. 50 ) { my @threads = map{ Win32::Sleep 100; threads->new(\&threadTest); } 1 .. 25; my $midmem = mem; $_->join for @threads; undef @threads; my $endmem = mem; print "Pass $pass\tMidMem: $midmem KB\tEndMem: $endmem KB"; }

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.