>> normal HANDLE and a waitable one even, that can be passed to
>> WaitForSingleObject() and friends, then it should work to use it as
>> the "fd" in a GPollFD.

> typedef struct {
>
> #if defined (G_OS_WIN32) && GLIB_SIZEOF_VOID_P == 8
>  gint64 fd;
> #else
>  gint           fd;

> ok so on windows fd here is a pointer to a handle,

Not a pointer to a HANDLE, but a HANDLE as such. (And it must be a
waitable handle.)

> not the rutime lib's lookup table's integer index...

You mean the C library's "file descriptors"? Indeed not. To use them,
you need to use g_io_channel_win32_new_fd(). (Which then creates a
GIOChannel, not a GPollFD. And it works only if your code uses the
same C library as GLib does, normally msvcrt.dll.)

> any ideas what the revents mask should be?

G_IO_IN I think.

> Very interesting. So presumably on windows poll() is really something like
> WaitForMultiple*()?

Exactly. Check in gpoll.c.

> Which would mean what - a prepare that always returns
> FALSE w/ *timeout_ = 0, and a check that does what it what otherwise do if
> WaitForSingleObject() returned hot?

It's best to experiment, as I said I don't recall the details by
heart... and too busy to actually check now.

--tml
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to