
Hi Daniel,
As of 0.6.0, the libvirtd daemon is fully multi-threaded. This means that many API calls can be using your driver concurrently. So every driver API call you have (ie those registered in the 'virDriver' struct must use one or more mutexs to ensure safe access to internal state.
thanks, i will do the same for virtualbox driver.
I am using dlopen() and friends to open the VirtualBox library at runtime, is it ok? cause I didn't see any driver doing something like this.
I think it depends on exactly how you are doing it - best to just post the patches and we can discuss whether it looks reasonable then. Why did you dlopen() instead of just linking to it directly ?
Basically my code depends on three libraries used in virtualbox namely: VBoxXPCOMC.so, VBoxRT.so, VBoxXPCOM.so and if i link to them then these dependencies would trickle down to other programs as well, for example: virsh would need to be relinked, for that matter any program who depends on libvirt with virtualbox support compiled in it would need to be relinked. so currently i am trying to make as minimal change to any of the libvirt files as possible and restrict my code to the following 6 files: vbox_driver.c/h and vbox_conf.c/h. I am not sure if this approach is valid? Also I am not sure when or how should I call the driver mature enough to post it on the list? (like do you have any specific functions required) I have almost all the basic functionality for listing/suspending/resuming domains up and running. Regards, -pritesh
Regards, Daniel