You're right! I tracked as far as entering the perl_clone() call in threads.xs. It goes in and doesn't come out until I connect to the socket from an external process:
C:\test>828831.pl
paused
# threads.xs(695)
# threads.xs(700)
# threads.xs(722)
# threads.xs(736)
# threads.xs(765)
# threads.xs(774)
# threads.xs(788)
# threads.xs(796)
# threads.xs(824)
# threads.xs(834)
# threads.xs(904)
# threads.xs(906)
# threads.xs(929)
accept loop started
paused
# threads.xs(695)
# threads.xs(700)
# threads.xs(722)
# threads.xs(736)
# threads.xs(765) ### hangs here until
Connect from IO::Socket::INET=GLOB(0x544e2a0) ### I connect with tel
+net
# threads.xs(774) ### then everything r
+uns on
# threads.xs(788)
# threads.xs(796)
# threads.xs(824)
# threads.xs(834)
# threads.xs(904)
# threads.xs(906)
# threads.xs(929)
Client 1 started ### and the internal c
+lients connect
So the question becomes, what could perl_clone() be locking and not freeing, that gets freed when accept() gets a connection from an external process?
-
-
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|