I don't think this is quite correct. We call VBoxCGlueInit()
in the vboxRegister() function, which is run when libvirt first
initializes the whole library.
The real bug is the vboxClose() method which calls vboxUninitialize()
which is then calling VBoxCGlueTerm(). So if you have many virConectPtr
objects open, the first one you call virConnectClose on will
shutdown the entire vbox library, breaking all the other virConnectPtr
instances you have active.
IMHO, we should simply delete VBoxCGlueTerm() completely.
Right the VBoxCGlueTerm() is causing the whole problem.
Resending the patch with changes as suggested above.
Regards,
Pritesh