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"; }
|
|---|