[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] qemuDomainChangeEjectableMedia: Unlock domain while waiting for event



On 05/20/2013 11:41 AM, Michal Privoznik wrote:
> In 84c59ffa I've tried to fix changing ejectable media process. The
> process should go like this:
> 
> 1) we need to call 'eject' on the monitor
> 2) we should wait for 'DEVICE_TRAY_MOVED' event
> 3) now we can issue 'change' command
> 
> However, while waiting in step 2) the domain monitor was locked. So
> even if qemu reported the desired event, the proper callback was not
> called immediately. The monitor handling code needs to lock the
> monitor in order to read the event. So that's the first lock we must
> not hold while waiting. The second one is the domain lock. When
> monitor handling code reads an event, the appropriate callback is
> called then. The first thing that each callback does is locking the
> corresponding domain as a domain or its device is about to change
> state. So we need to unlock both monitor and VM lock. Well, holding
> any lock while sleep()-ing is not the best thing to do anyway.
> ---
>  src/qemu/qemu_hotplug.c | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)
> 

ACK.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]