On 11/25/2011 03:46 PM, Fabien Chouteau wrote:
> slirp is fd_set---thus select()---based. iohandler too, though it would
likely be simpler to switch it to poll().
Right, for slirp and iohandler, but it seems wrong to take file
descriptors from g_main_context_query() and put them in the fd_sets for
select(). This part is still in the code today.
It's ugly, but it works. There's a fundamental impedence mismatch
between glib and slirp/iohandler. Either you convert glib's pollfds to
fd_sets, or you take slirp and iohandler's fd_sets and put them in
pollfds. Converting slirp and iohandler to produce pollfds is not easy
because Windows does not have poll---so you'd still have a
pollfd-to-fd_set conversion somewhere. Believe me, I thought this
through. :)
Paolo