CygPerl hangs opening FIFO after fork (in both parent&child)

Christopher Faylor cgf-no-personal-reply-please@cygwin.com
Fri Jun 23 05:32:00 GMT 2006


On Thu, Jun 22, 2006 at 07:52:37PM -0700, Yitzchak Scott-Thoennes wrote:
>On Thu, Jun 22, 2006 at 06:53:38PM -0700, Brian Dessent wrote:
>> Linda Walsh wrote:
>>>The attached test case is simple and fairly short.  It does not depend
>>>on File::BOM (and has none of the code from it).
>>>
>>>It's only dependency (other than perl) is the POSIX module, where,
>>>from, the "fifo" command is taken.
>>
>>This appears to be a deadlock in the Cygwin DLL when both the reader
>>and writer end of a fifo tries to open the file at the same time (or
>>nearly the same time.) They end up signaling each other to ask about
>>the other end of the pipe, and hang there.  It has nothing to do with
>>perl or fork, as far as I can tell -- the attached C testcase will work
>>fine if the reader end sleeps briefly to ensure the opening order.
>>It's just a classic race condition somewhere.
>
>Good job isolating this problem, Linda and Brian.

Not to denigrate Brian's analysis but, AFAICT, there was already a
snapshot with the fix by the time he sent his mail.

I only point this out because I didn't want it to look like I was
ungrateful for Brian's analysis or that I used it and didn't give
credit.

cgf

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list