eyepopslikeamosquito has asked for the wisdom of the Perl Monks concerning the following question:
Further to Perl threads test intermittently hangs on Windows, the simple program below appears to be leaking handles on Windows. That is, at the end of the run, Windows Task Manager (and sysinternals pslist command) both show the perl process has 1017 open handles. It seems the underlying Win32 thread handles are not being closed. Is there a way to force them to be closed? (I am using Active State Perl 5.8.3 build 809 on Windows XP).
#!/usr/bin/perl -w use strict; use threads; sub do_one_thread { warn "in kid\n" } sub do_thread { my $t = threads->new(\&do_one_thread); warn "parent $$: waiting for join\n"; $t->join(); warn "parent $$: thread exited\n"; } for my $i (1..1000) { warn "i=$i:---\n"; do_thread(); } warn "sleeping for 60 seconds (check handle count in Task Manager)\n"; sleep(60);
At the end of the run, the sysinternals pslist command reports 1017 open handles:
Name Pid Pri Thd Hnd Mem User Time Kernel Time Ela +psed Time perl 6560 8 1 1017 3232 0:00:15.203 0:00:00.203 0: +00:18.390
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Perl threads test on Windows: how to close thread handles?
by BrowserUk (Patriarch) on Jun 04, 2004 at 03:49 UTC | |
Re: Perl threads test on Windows: how to close thread handles?
by bageler (Hermit) on Jun 04, 2004 at 02:48 UTC | |
by eyepopslikeamosquito (Archbishop) on Jun 04, 2004 at 03:29 UTC | |
Re: Perl threads test on Windows: how to close thread handles?
by BrowserUk (Patriarch) on Jun 04, 2004 at 03:30 UTC | |
by eyepopslikeamosquito (Archbishop) on Jun 04, 2004 at 04:07 UTC | |
by BrowserUk (Patriarch) on Jun 04, 2004 at 04:22 UTC |