On 25/11/2011 15:49, Paolo Bonzini wrote: > 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.
For Windows I'm not sure it will work. > 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. Is it possible to use both? Keep the select scheme for iohandlers and slirp, but use g_main_context_iteration() for Glib stuff. > Believe me, I thought this through. :) > I know, I just try to understand ;) -- Fabien Chouteau