This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Support Windows in event-loop.c


Christopher Faylor <me@cgf.cx> writes:

> >Or are you saying that WaitForMultipleObjects is not the way to write
> >such an emulation?  If so, what system calls are better candidates?
> >
> >FWIW, the Emacs emulation of `select' does work on pipes, so it seems
> >that at least in that case there's code to borrow.
> 
> Cygwin's emulation does too, but it doesn't use WaitForMultipleObjects.
> AFAIK, the only way to do non-blocking reads on normal pipes is to poll
> the pipe with the PeekNamedPipe call.  It's ugly and painful.

For what it's worth, Tcl implements an event loop on Windows which
works for all types of objects.  The main trick is to create a little
thread which sits around reading the pipe, and raises an event when it
gets something.  Of course, you then have to carefully hand that data
over to the main thread when the main thread wants to read from the
pipe.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]