I have some code if you want that work. If you could test, I wil lsend you. I have no time to create m4 and proper gnulib integration. It is up to you Bastien On Tue, Jul 19, 2011 at 5:44 PM, Daniel P. Berrange <berrange@xxxxxxxxxx> wrote: > On Tue, Jul 19, 2011 at 09:31:59AM -0600, Eric Blake wrote: >> On 07/19/2011 09:30 AM, Daniel P. Berrange wrote: >> >>I'm wondering if the problem here is that libvirt is trying to use the >> >>pipe-to-self mechanism as a fundamental event loop idiom. That is, the >> >>reason libvirt is calling poll is in order to minimize CPU until >> >>something interesting happens, where interesting includes needing to >> >>wake up a helper thread to do an action inside locks in response to the >> >>receipt of a signal. >> >> >> >>Maybe you are on to something, and replacing all uses of pipe() with >> >>virPipeToSelf() (which uses pipe() for efficiency on Linux, but >> >>socketpair() on mingw), would allow libvirt to continue to use the >> >>pipe-to-self idiom while also using fds that can actually be poll'd on >> >>mingw. >> > >> >IIRC, we never resolved this for the last release. I think we should >> >do as you suggest and just use socketpair() on Win32. Given the way >> >in which libvirt uses these capabilities, I don't think the overheads >> >of socketpair() vs pipe() are so onerous that we need worry about an >> >even more fancy Win32 impl or eventfd for linux. Of course if someone >> >wants todo a full job for gnulib meawhile, we won't complain... >> >> Well, right now, we don't even have socketpair() for Win32. We'd >> have to wire up some other native APIs for this to work. > > Oh I read your mail above as indicating we did have socketpair() > on Mingw32. A quick look through google, suggests most people > go down the route of creating a TCP socket bound to localhost > for this purpose. > > Daniel > -- > |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| > |: http://libvirt.org -o- http://virt-manager.org :| > |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| > |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| > > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list