#!perl use IO::Socket::INET; use threads; $SIG{PIPE} = 'IGNORE"; $server = IO::Socket::INET->new( LocalPort => 90, Type => SOCK_STREAM, Reus => 1, Listen => 10) or die "Server Failed.\n"; $thread_A = threads->new(\&server); $thread_B = threads->new(\&server); $thread_C = threads->new(\&server); @result = ($thread_A->join, $thread_B->join, $thread_C->join); print "All threads returned, with codes @result\n"; sub server { while ($client=$server->accept) { for ($second=60; $second; --$second) { sleep 1; print $client "$second\n" or last; } close $client; } print "Thread: loop while(\$client=\$server->accept) was broken with reason \"unknown\", going to return.\n"; return 1; }