This is the version 2 of patches for deleting volume while it is being built.
based on the first version:
https://www.redhat.com/archives/libvir-list/2011-July/msg00535.html.
The patches is an attempt to spawn a new thread for volume building in
storageVolumeCreateXML(),
then, the initial thread is waiting for the cancelling signal from storageVolumeDelete().
When it gets the signal, it uses pthread_cancel() to stop the process of volume building,
then tell
storageVolumeDelete() to continue its job.
I go through the codes in other parts of libvirt briefly, such as nodedevice, network. It
is rare
to spawn a new thread, so this worth a shot or probably not.
Any idea is appreciated.