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
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list