On 8/2/06, Darryl Mile:
Okay you seem to have some understanding as to how and why it failed for the "unison" group of users. Do you think the commented out code is fixable in any so that all cases work correctly ?
Iff you can come up with a way to distinguish the two situations: 1) blocking read is in progress. 2) no blocking read is in progress. I can't come up with a way of doing that which is reliable in all cases of multiple readers on the same pipe, multiple writers on the same pipe, non-cygwin windows native processes involved, etc. Worse, I can't even come up with a way that helps the more common cases (single reader, single writer, both cygwin processes) and falls back to the current behaviour for the other cases. Instead, everything I've tried would deadlock in those less common cases. There probably is a way to do it, but enough people have spent enough time pondering this at this point, that you can be assured it isn't something immediately obvious. Anyway, at this point, if you can code something up and show that it works, then that's more likely to impress the maintainers than further talking. (And even if the maintainers don't accept the patch, if it fixes the problem for you, then there's nothing stopping you from using your own patch for your own purposes, and even distributing it to anyone else who finds it useful. That's the nice thing about the GPL). Lev -- 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/