On Mon, Dec 01, 2008 at 12:05:40AM +0000, Daniel P. Berrange wrote:
This patch makes the node device driver thread safe. Almost.
There is on outstanding problem in that the 'reload' method is implemented
by just calling shutdown/startup. This causes the mutex we're locking on
to be free'd and re-allocated. I'll fix this up later.
reload operatiosn are IMHO one of the most dangerous ops in that
thread safe attempts, that's one of the operations where specific
testing will be a really good idea.
[...]
failure:
+ nodeDeviceUnlock(driver);
--ndevs;
while (--ndevs >= 0)
VIR_FREE(names[ndevs]);
In general we use error: as the label for error exit paths, failure:
is being used only in src/node_device[_devkit/_hal].c: , probably
worth standardizing on the same label while we're at it.
I will update HACKING to indicate the 3 usual label goto usages in
libvirt code:
cleanup: common exit cleanup code
error: error exit cleanup code
retry: attempt at retrying an operation which failed due to a
temporary state like a signal interrupting an I/O
okay, there is more cleanups and refactoring in that patch, making the
change a bit harder to follow (especially in the DevKit part) but I
didn't found anything :-) +1
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/