Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: gdb-patches@sourceware.org
Subject: Re: RFA: Various Windows (mingw32) additions, mostly relating to select or serial ports
Date: Sat, 04 Feb 2006 12:38:00 -0000	[thread overview]
Message-ID: <uzml7mh7j.fsf@gnu.org> (raw)
In-Reply-To: <20060203220529.GA3578@nevyn.them.org> (message from Daniel 	Jacobowitz on Fri, 3 Feb 2006 17:05:29 -0500)

> Date: Fri, 3 Feb 2006 17:05:29 -0500
> From: Daniel Jacobowitz <drow@false.org>
> 
> The primary ugly bit of this patch is the select wrapper.  Windows has
> interfaces for all these things which map to Unix file descriptors, but
> while the Unix interfaces are actually compatible, the Windows interfaces
> are just designed along similar principles.  So you can handle a serial port
> in roughly the same way you handle a console window.... but only roughly.
> In fact you need to know what sort of device is behind each "file
> descriptor", in order to handle it appropriately.

Could you elaborate a bit?  I cannot easily see where that device
knowledge is present in the patch; it all looks to me like several
instances of the same code with almost identical flow.

In particular, I thought WaitForMultipleObjects could handle any kind
of handle, be it a pipe, a socket, a console, a process, or a file.

Even if the code is slightly different in that it calls different OS
API functions, cannot it all be expressed as the same code that uses a
function table indexed by the interface type?

> The one I'm least proud of is pipes - there does not appear to be a way to
> sleep and have the OS wake you when data is available on a pipe.

??? Again, doesn't WaitForMultipleObjects fit the bill?

> I've tested it.  I'm not sure what else to say about it.  Is it OK?  Are
> there things blatantly wrong with it that I've missed?  Are there particular
> bits that you think are just too ugly, and if so, do you have any
> suggestions on how to make them less ugly?

I'd like an explanation about this paradigm:

> +      wait_events[0] = state->stop_select;
> +      wait_events[1] = h;
> +
> +      event_index = WaitForMultipleObjects (2, wait_events, FALSE, INFINITE);
> +
> +      if (event_index == WAIT_OBJECT_0
> +	  || WaitForSingleObject (state->stop_select, 0) == WAIT_OBJECT_0)
> +	{
> +	  CloseHandle (state->stop_select);
> +	  return 0;
> +	}

(You have similar code in gdb_select and elsewhere.)  Why do you need
to wait for an object again with WaitForSingleObject, after you've
just waited for it in WaitForMultipleObjects?

Otherwise, I'm okay with these patches, except that...

>  - Windows serial support.  This definitely deserves a NEWS entry,
>    included.

...I don't think you included this entry.


  parent reply	other threads:[~2006-02-04 12:38 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-03 22:05 Daniel Jacobowitz
2006-02-03 22:08 ` Daniel Jacobowitz
2006-02-04 12:43   ` Eli Zaretskii
2006-02-04 15:13     ` Daniel Jacobowitz
2006-02-04  6:28 ` Ian Lance Taylor
2006-02-04 10:30   ` Eli Zaretskii
2006-02-04 17:06     ` Ian Lance Taylor
2006-02-04 17:45       ` Eli Zaretskii
2006-02-04 15:00   ` Daniel Jacobowitz
2006-02-05  0:01     ` Ian Lance Taylor
2006-02-05 22:00       ` Daniel Jacobowitz
2006-02-06  3:27         ` Ian Lance Taylor
2006-02-06  4:03           ` Daniel Jacobowitz
2006-02-04 12:38 ` Eli Zaretskii [this message]
2006-02-04 15:11   ` Daniel Jacobowitz
2006-02-04 15:23     ` Eli Zaretskii
2006-02-04 15:30       ` Daniel Jacobowitz
2006-02-06 21:02 ` Daniel Jacobowitz
2006-02-06 23:02   ` Mark Kettenis
2006-02-06 23:17     ` Daniel Jacobowitz
2006-02-06 23:21     ` Christopher Faylor
2006-02-09 22:38     ` Daniel Jacobowitz
2006-02-10  7:53       ` Eli Zaretskii
2006-02-10 20:46       ` Mark Kettenis
2006-02-10 22:02         ` Daniel Jacobowitz
2006-02-07  4:41   ` Eli Zaretskii

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=uzml7mh7j.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    /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