From: Ian Lance Taylor <ian@airs.com>
To: Christopher Faylor <me@cgf.cx>
Cc: gdb-patches@sources.redhat.com, Eli Zaretskii <eliz@gnu.org>
Subject: Re: PATCH: Support Windows in event-loop.c
Date: Fri, 22 Apr 2005 15:14:00 -0000 [thread overview]
Message-ID: <m3is2ehmid.fsf@gossamer.airs.com> (raw)
In-Reply-To: <20050422145958.GH16791@trixie.casa.cgf.cx>
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
next prev parent reply other threads:[~2005-04-22 15:14 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-21 5:53 Mark Mitchell
2005-04-21 18:46 ` Eli Zaretskii
2005-04-21 18:49 ` Daniel Jacobowitz
2005-04-21 18:56 ` Mark Mitchell
2005-04-21 20:30 ` Eli Zaretskii
2005-04-21 20:56 ` Daniel Jacobowitz
2005-04-21 21:15 ` Mark Mitchell
2005-04-22 8:26 ` Eli Zaretskii
2005-04-22 12:08 ` Christopher Faylor
2005-04-22 13:23 ` Eli Zaretskii
2005-04-22 15:04 ` Christopher Faylor
2005-04-22 15:14 ` Ian Lance Taylor [this message]
2005-04-22 15:28 ` Christopher Faylor
2005-04-22 15:52 ` Mark Mitchell
2005-04-22 8:16 ` Eli Zaretskii
2005-04-24 22:18 ` Daniel Jacobowitz
2005-04-24 22:30 ` Mark Kettenis
2005-04-25 0:04 ` Mark Mitchell
2005-04-24 23:57 ` Mark Mitchell
2005-04-25 4:25 ` Christopher Faylor
2005-04-25 13:16 ` Daniel Jacobowitz
2005-04-25 14:50 ` Christopher Faylor
2005-04-25 14:59 ` Mark Mitchell
2005-04-25 15:04 ` Daniel Jacobowitz
2005-04-25 15:18 ` Mark Mitchell
2005-04-25 15:23 ` Daniel Jacobowitz
2005-04-25 15:26 ` Mark Mitchell
2005-04-25 15:36 ` Daniel Jacobowitz
2005-04-25 16:44 ` Eli Zaretskii
2005-04-25 20:23 ` Mark Mitchell
2005-04-25 21:07 ` Eli Zaretskii
2005-04-25 21:49 ` Mark Mitchell
2005-04-25 22:00 ` Mark Kettenis
2005-04-25 22:09 ` Mark Mitchell
2005-04-25 22:29 ` Mark Kettenis
2005-04-25 22:47 ` Mark Mitchell
2005-04-26 3:55 ` Eli Zaretskii
2005-04-25 23:16 ` Christopher Faylor
2005-04-25 23:20 ` Mark Mitchell
2005-04-25 23:33 ` Christopher Faylor
2005-04-26 0:21 ` Mark Mitchell
2005-04-26 3:58 ` Eli Zaretskii
2005-04-26 3:59 ` Mark Mitchell
2005-04-25 15:50 ` Ian Lance Taylor
2005-04-26 3:49 ` Eli Zaretskii
2005-04-26 13:17 ` Daniel Jacobowitz
2005-04-25 15:52 ` M.M. Kettenis
2005-04-25 16:00 ` Daniel Jacobowitz
2005-04-25 16:08 ` Ian Lance Taylor
2005-04-25 16:24 ` Christopher Faylor
2005-04-25 17:08 ` Mark Mitchell
2005-04-25 21:04 ` Eli Zaretskii
2005-04-25 16:42 ` Eli Zaretskii
2005-04-21 21:01 ` Christopher Faylor
2005-04-21 21:03 ` Christopher Faylor
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m3is2ehmid.fsf@gossamer.airs.com \
--to=ian@airs.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sources.redhat.com \
--cc=me@cgf.cx \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox