On Mon, Feb 20, 2012 at 02:29:11PM -0700, Eric Blake wrote: > On 02/20/2012 04:32 AM, Gerd Hoffmann wrote: > > Hmm, that is pretty lame. There are users like autotest which expect > > the screen dump being there when the monitor command is finished, that > > change will break them. > > Libvirt is another such user. > > > > > Unfortunaly there is no easy way out. I think the options are: > > > > (1) Keep existing behavior. That means the screenshot might show old > > screen content. Not very nice too. Would work sort-of ok for > > autotest though as autotest does screenshots every second and thus > > the screen content wouldn't be older than a second. > > > > (2) Async monitor command. Keeps interface and works nicely. A bunch > > of QAPI bits tickled into master meanwhile, so we could look at > > this again. Luiz? What is the status here? > > > > (3) Something like this patch + additionally introduce a > > "your-screenshot-is-finished-now" qmp event. Will break existing > > users too. But at least they can be adapted without requiring > > some external, nonportable service like inotify ... > > Libvirt would want 3) - any command that becomes async also needs an > event to tell us when the command is completed, so that libvirt can > maintain the synchronous interface to the user (and/or expose a new flag > to allow the user to also benefit from the asynchronous command).
If I do 2) then libvirt won't notice because the monitor command will block as usual. Only change would be internal, qemu would continue processing other fds in the interim. > > -- > Eric Blake ebl...@redhat.com +1-919-301-3266 > Libvirt virtualization library http://libvirt.org >