<?xml version="1.0" encoding="windows-1252"?>
<node id="999833" title="Re^8: PANIC: underlying join failed threded tcp server" created="2012-10-18 20:34:32" updated="2012-10-18 20:34:32">
<type id="11">
note</type>
<author id="984918">
rmahin</author>
<data>
<field name="doctext">
Changes made to threads.xs
&lt;code&gt;
        /* Join the thread */
#ifdef WIN32
		printf( "thread handle:%x thread-id: %dx\n", thread-&gt;handle, GetThreadId( thread-&gt;handle ) );
        if (WaitForSingleObject(thread-&gt;handle, INFINITE) != WAIT_OBJECT_0) {
			printf("GetLastError output: '%d'", GetLastError());
            /* Timeout/abandonment unexpected here; check $^E */
            Perl_croak(aTHX_ "PANIC: underlying join failed");
        };
#else
        if ((rc_join = pthread_join(thread-&gt;thr, &amp;retval)) != 0) {
            /* In progress/deadlock/unknown unexpected here; check $! */
            errno = rc_join;
            Perl_croak(aTHX_ "PANIC: underlying join failed");
        };
#endif
&lt;/code&gt;

&lt;br/&gt;
Changes made to rxd.pl 
&lt;code&gt;
	# wait to join and delete from hash
	foreach my $join (threads-&gt;list(threads::joinable)) {
		my $val = eval{ $join-&gt;join() } or die "Join failed with '$!' : '$^E'";
		tprint("_handle() output: " . $join-&gt;_handle());
		#my $val = $join-&gt;join();
		# tprint("Deleting fd- $val");
		delete $FDcache{$val};
	}
&lt;/code&gt;

&lt;br/&gt;
&lt;p&gt;
OS/Version: 
Microsoft Windows Server 2003 R2 
Enterprise x64 Edition
Service Pack 2
And this is a VM if that makes any difference. 
&lt;/p&gt;
&lt;p&gt;
Perl/version:
Active perl v5.16.1
&lt;code&gt;
C:\&gt;perl -v
This is perl 5, version 16, subversion 1 (v5.16.1) built for MSWin32-x64-multi-t
hread
(with 1 registered patch, see perl -V for more detail)
&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
threads/version: threads-1.86
&lt;/p&gt;
&lt;br/&gt;
Let me know if you need anything else!
</field>
<field name="root_node">
999609</field>
<field name="parent_node">
999832</field>
</data>
</node>
