Am 15.10.2013 19:05, schrieb Dimitar Zhekov:
The last time FiF-ed, glib did not contain any calls to PeekNamedPipe
or SetNamedPipeHandleState. I am not aware of any way to implement
async anonymous pipe I/O under Windows without these, and see no
reason to check the various glib functions one by one. (Don't be
fooled by "Named", these work for anonymous pipes, and in fact the
win~1 named pipes don't need them as they support event based I/O).
Speaking of PeekNamedPipe...
A few months ago I contributed a fully working win32 poll()
implementation to PulseAudio (based on gnulib). Because pacat could not
read from a process that outputs an audio data stream to stdout, and
this case did not work with their poll() function (it really only
handled sockets properly). Anyway, the poll() I provided handles pipes
and console stdin/stdout as well. You can find it here:
http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/pulsecore/poll-win32.c
I remember I looked how glib implements poll() on Windows (because
pulseaudio still failed when it used its glib-mainloop plugin) and it
also didn't have a proper implementation. I think glib uses poll() for
GIO stuff and based on my findings I would expect that glib does poorly
with GIO on win32 pipes.
Perhaps it would be worthwhile to get that poll() implementation into glib?
Best regards.
_______________________________________________
Devel mailing list
Devel@lists.geany.org
https://lists.geany.org/cgi-bin/mailman/listinfo/devel