cygrunsrv + sshd + rsync = 20 times too slow -- throttled?
Ken Brown
kbrown@cornell.edu
Mon Sep 13 13:03:04 GMT 2021
On 9/13/2021 5:42 AM, Corinna Vinschen wrote:
> On Sep 12 17:46, Ken Brown wrote:
>> BTW, we could just decide that always reporting write ready in this corner
>> case is acceptable. But then we could just do that without going back to
>> query_hdl.
>
> The problem with the corner case is, how to find out? You could have
> arbitrarily complex process trees with the pipe inherited by grand
> children, one of which is a non-Cygwin process. How does a Cygwin
> process tree member learn about that fact, if it didn't start the
> non-Cygwin process by itself?
>
> Looks like we have three choices:
>
> - Reintroducing query_hdl as in Takashi's patch.
>
> - select timeouts
>
> - always return "pipe writable"
>
> I think we might try Takashi's idea for as start, no?
That sounds good to me, provided he can fix the "cnc" case I just asked him
about -- Cygwin reader and writer on a pipe created by a non-Cygwin process.
> Didn't we also have a problem with C# in terms of non-blocking pipes?
> I wonder if we could just do the following: As soon as we spawn a
> non-Cygwin process, just call set_pipe_non_blocking(false) for all
> pipes. Blocking vs. nonblocking mode is a per-handle thingy anyway.
>
> What do you think?
I don't remember exactly what the issue was with C# programs, so I'll defer to
Takashi on this.
Ken
More information about the Cygwin-developers
mailing list