Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Date: Mon, 11 Dec 2000 13:36:05 -0500 From: Christopher Faylor To: cygwin Subject: Re: Why does scp leave ssh running? -- select() never returns Message-ID: <20001211133605.B7497@redhat.com> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin References: <3A22C383 DOT 5C16BBC8 AT delcomsys DOT com> <3A25C7DA DOT 6F76C8DA AT delcomsys DOT com> <20001129224015 DOT B21867 AT redhat DOT com> <3A266130 DOT F5877EB5 AT delcomsys DOT com> <3A271DCD DOT 99BDDBF5 AT delcomsys DOT com> <20001202200832 DOT A18661 AT redhat DOT com> <3A29C260 DOT 1C491A30 AT delcomsys DOT com> <20001202233944 DOT A19867 AT redhat DOT com> <3A2A16B5 DOT E1C3F9F4 AT redhat DOT com> <3A351ADE DOT EF54C845 AT delcomsys DOT com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.11i In-Reply-To: <3A351ADE.EF54C845@delcomsys.com>; from wpd@delcomsys.com on Mon, Dec 11, 2000 at 01:20:14PM -0500 On Mon, Dec 11, 2000 at 01:20:14PM -0500, Patrick Doyle wrote: >So far, the most elegant solution I have come up with is to reimplement >'select()' so that it calls 'ReadFileEx()' with a suitable 'OVERLAPPED' >structure, thus eliminating the separate thread that wakes up every 10 >ms. Of course, if I read a byte from the pipe, I would have to buffer >it somewhere and fix 'read()' so that it checks for the "readahead" byte >first, but that is basically solvable. If the call to 'select()' >returned for some other reason (i.e. another fd was made ready), then >call 'CancelIo()' to terminate the asynchronous read. I'm pretty sure that overlapped I/O does not work with any flavor of pipe. It should be possible to make a simple test case, to verify though. cgf -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com