On Tue, Aug 16, 2011 at 02:24:53PM +0200, Guido Günther wrote: > Hi Daniel, > On Sat, Aug 13, 2011 at 08:57:45PM -0700, Daniel P. Berrange wrote: > > On Fri, Aug 12, 2011 at 11:54:28PM +0200, Guido Günther wrote: > [..snip..] > > In the default libvirt event loop, the 'ff' callback is always invoked > > from a "clean" stack in the event loop, so you never have this problem > > with re-entrancy. > > > > > Working around this by removing the locks from > > > virNetSocketRemoveIOCallback leads to another deadlock: > > > > Yeah this is not a viable approach. > Sure. This was only to see what else fails. > > > > > > > I didn't see a simple way to fix this but would welcome any suggestions. > > > > IMHO we just have to document that event loop implementations > > should make sure that the 'ff' callbacks are always invoked > > from a clean stack. In the case of virt-viewer, this means > > changing it to register a g_idle callback function to invoke > > the 'ff' callback. > > Patch for virt-viewer attached. I'll come up with a doc patch for > libvirt once I have a bit more time. Thanks, I have applied this patch. Regards, 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