[PATCH] Re: Fifo blocking and performance issues

Gregory M. Turner gmt@malth.us
Wed Oct 3 15:23:00 GMT 2012


On 10/3/2012 6:02 AM, Christopher Faylor wrote:
> On Wed, Oct 03, 2012 at 02:58:55AM -0700, Gregory M. Turner wrote:
>> On 10/2/2012 5:55 PM, Christopher Faylor wrote:
>>> FYI, a quick scan seems to show that you've pretty much undone a lot of
>>> what I've recently added for fifos so I don't expect to really be too
>>> keen on applying the patch.  But, I don't want to spend too much time
>>> inspecting a change which can't yet be applied.
>>
>> Yeah, I'm aware of this; I'd be happy to assign -- I'm always easy when
>> it comes to IP stuff.  FTR, that doesn't mean I expect this patch to go
>> in or even be looked at; I'd just like for it to be a non-issue in the
>> future.
>>
>> Is your tree available somewhere for perusal, Chris?  Or is there some
>> way we could get a look at your WIP pipe/fifo deltas?  I'm on
>> -developers and -patches if you want to change venues.
>
> Maybe you are misinterpreting "What I've recently added".> I made big
> changes to fifo handling in the last couple of Cygwin releases.  That is
> what I was referring to.  Otherwise, no, you can't look at my sandbox.

Yep, I thought what you think I thought :)

Unfortunately, with my patch, once the first RDWR handle is created, and 
until it and all of its clones are closed, subsequent attempts to create 
additional non-cloned handles don't work.

The root cause is my patch's use of "platonic" half-duplex win32 pipe 
handles, analogous to pipe2().  Although difficult to "prove" without a 
lot of verbiage, I believe that this can't be solved in that approach 
without changing the way fhandler_fifo coordinates readers and writers. 
  So yeah, the patch probably starts fhandler_fifo down a path that 
would require some sort of significant semantic change.

I used to believe this also proved that the current approach was flawed; 
but after after some alone-time with your comments, cvs commit history, 
and a nerf-brand clue-by-four, I'm feeling a lot more agnostic about 
that... so back to the drawing board, if anywhere; I wouldn't encourage 
you to put much effort into understanding my patch.

Hopefully, though, I'm starting to get what you're trying to do with 
PIPE_ACCESS_DUPLEX.  If I ever have a good enough question about this 
that I can formulate it and press the send button without figuring out 
the answer, I won't hesitate.

-gmt

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



More information about the Cygwin mailing list