On 06/15/2012 09:05 AM, Paolo Bonzini wrote: > Job pausing reuses the existing support for cancellable sleeps. A pause > happens at the next sleeping point and lasts until the coroutine is > re-entered explicitly. Cancellation was already doing a forced resume, > so implement it explicitly in terms of resume. > > Paused jobs cannot be canceled without first resuming them. This ensures > that I/O errors are never missed by management. > > +++ b/qapi-schema.json > @@ -906,6 +906,8 @@ > # > # @len: the maximum progress value > # > +# @paused: whether the job is paused > +# > # @offset: the current progress value > # > # @speed: the rate limit, bytes per second > @@ -914,7 +916,7 @@ > ## > { 'type': 'BlockJobInfo', > 'data': {'type': 'str', 'device': 'str', 'len': 'int', > - 'offset': 'int', 'speed': 'int'} } > + 'offset': 'int', 'paused': 'bool', 'speed': 'int'} } Should this be listed as '*paused': 'bool', as an indication that not all versions of qemu populated the paused member? It's an output-only type, though, so I think we are okay in providing more information that what clients were previously used to seeing. -- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org