It's not clear to me what your debugger trace output is showing?
It's showing the stack trace of all threads at the time of the hang. I started by running the program outside the debugger. It then hung as follows:
i=365:--- parent 3980: continue kid=1 3980 before require parent 3980: continue parent 3980: waiting for join kid=2 3980 before require kid=1 3980 after require parent 3980: thread exited parent 3980: waiting for join kid=2 3980 after require parent 3980: thread exited i=366:--- parent 3980: continue kid=1 3980 before require parent 3980: continue parent 3980: waiting for join kid=2 3980 before require
Using the sysinternals pslist command in another window showed all threads waiting.
pslist -d perl perl 3980: Tid Pri Cswtch State User Time Kernel Time Elap +sed Time 6108 8 10366 Wait:UserReq 0:00:20.296 0:00:00.375 0:0 +7:47.367 3856 8 304 Wait:UserReq 0:00:00.062 0:00:00.062 0:0 +5:40.338 2784 9 282 Wait:Executive 0:00:00.062 0:00:00.046 0:0 +5:40.307
I then right clicked on the hung process in Windows Task Manager then clicked Debug which invoked WinDbg and then issued the ~* kv command to show the stack trace of all threads. After doing that, pslist output changed as follows:
pslist -d perl perl 3980: Tid Pri Cswtch State User Time Kernel Time Elap +sed Time 6108 10 10380 Wait:Suspended 0:00:20.296 0:00:00.375 0:1 +1:41.922 3856 10 316 Wait:Suspended 0:00:00.062 0:00:00.062 0:0 +9:34.893 2784 9 290 Wait:Suspended 0:00:00.062 0:00:00.046 0:0 +9:34.862 5480 10 14 Wait:Executive 0:00:00.000 0:00:00.000 0:0 +1:08.299
In reply to Re^4: Perl threads test intermittently hangs on Windows
by eyepopslikeamosquito
in thread Perl threads test intermittently hangs on Windows
by eyepopslikeamosquito
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |