in reply to Re^3: threads->create() blocks on Windows
in thread threads->create() blocks on Windows

Okay, so Cygwin is applying some magic here.

Anyway, I can reproduce the exact backtrace bulk88 posted and I can only see one thread having a msvcrt.dll frame on its callstack. So I isn't obvious to me why this should be a deadlock with the locks in msvcrt.dll. I looked at the msvcrt.dll code and can see the locking you're talking about. But I can't see how this should be the problem here.

Also I managed to create another deadlock case in which both threads have no msvcrt.dll frame on their stack, but directly call into ws2_32.dll from the Perl library.

Anyway, I'll give up on this problem for now and use Cygwin as a workaround.

Thanks for your help!

  • Comment on Re^4: threads->create() blocks on Windows