On Fri, Sep 25, 2015 at 12:18:05PM +0200, Paolo Bonzini wrote: > > > On 24/09/2015 16:51, Daniel P. Berrange wrote: > > Thanks, I'd still love one or more people to do a detailed review of > > the I/O channel implementations before I think about sending a PULL > > request, since there's a fair amount of code in there.... > > I did a review of the file, socket, command and buffer code. I made > another small suggestion regarding error checking. > > The command code could add support for shutdown by closing the parent's > end of the pipe. It can be useful to avoid deadlocks in bidirectional > pipes.
Hmm, yes, good idea. > > I'm curious now as to which bit you might be refering to here :-) IIRC > > the only place I had any interaction with coroutines was the migration > > code QEMUFile implementation, where I need to yield when reads block. > > I think it was NBD. Ah ok. I did start looking at NBD but got scared by all the AIO context handling & event loop integration, which is somewhat different from just being able to register with gmainloop directly. So that's still something I need to explore.... 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 :|
