[libvirt] [PATCH v2 4/5] In storageVolumeCreateXML, spawn a new thread for volbuilding, in storageVolumeDelete, generate the signal

Eric Blake eblake at redhat.com
Mon Jul 18 19:17:05 UTC 2011


On 07/18/2011 05:13 AM, Guannan Ren wrote:
>> Independantly of this, IMHO pthread cancellation handlers are a recipe
>> for trouble because it is incredibly hard to make sure you correctly
>> cleanup all resources in the thread, even with use of cleanup handlers.
>>
>> IMHO, threads should be made to monitor some external "quit" boolean
>> variable (eg see threadpool.c thread termination).
>>
>> Daniel
> yep but the push and pop function couldn't be in different function,
> according to man page as follows.

The concept of pushing and popping handlers isn't the bottleneck here, 
rather, it is that _all_ functions in the callstack must reliably use 
the push/pop handlers correctly, before _any_ function can call 
pthread_cancel on the entire callstack.  Right now, none of our code 
uses any push/pop handlers.  Therefore, it becomes a much larger patch 
to properly insert push/pop handlers into the entire call chain than it 
is to just write the worker thread to periodically check if any other 
thread has requested an early quit.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org




More information about the libvir-list mailing list