
2009/11/25 Daniel P. Berrange <berrange@redhat.com>:
* libvirt-override.c: Add many missing calls to allow threading when entering C code, otherwise python blocks & then deadlocks when we have an async event to dispatch back into python code --- python/libvirt-override.c | 106 ++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 96 insertions(+), 10 deletions(-)
diff --git a/python/libvirt-override.c b/python/libvirt-override.c index b885190..0f7db9c 100644 --- a/python/libvirt-override.c +++ b/python/libvirt-override.c [...] @@ -418,10 +456,15 @@ libvirt_virDomainPinVcpu(PyObject *self ATTRIBUTE_UNUSED, VIR_UNUSE_CPU(cpumap, i); }
- virDomainPinVcpu(domain, vcpu, cpumap, cpumaplen); + LIBVIRT_BEGIN_ALLOW_THREADS; + i_retval = virDomainPinVcpu(domain, vcpu, cpumap, cpumaplen); + LIBVIRT_END_ALLOW_THREADS; Py_DECREF(truth); free(cpumap);
+ if (i_retval < 0) + return VIR_PY_INT_FAIL; + return VIR_PY_INT_SUCCESS; }
You should at least mention this additional fix in the commit message. ACK! Matthias