suggested by danpb on irc, patch by danken fixed for proper C syntax
* python/libvirt-override.c: on event callback release the python
interpreter lock and take it again when coming back so that the
callback can reinvoke libvirt.
cb = (virEventHandleCallback) PyvirEventHandleCallback_Get(py_f);
opaque = (void *) PyvirVoidPtr_Get(py_opaque);
- if(cb)
+ if(cb) {
+ LIBVIRT_BEGIN_ALLOW_THREADS;
cb (watch, fd, event, opaque);
+ LIBVIRT_END_ALLOW_THREADS;
+ }
return VIR_PY_INT_SUCCESS;
}
cb = (virEventTimeoutCallback) PyvirEventTimeoutCallback_Get(py_f);
opaque = (void *) PyvirVoidPtr_Get(py_opaque);
- if(cb)
+ if(cb) {
+ LIBVIRT_BEGIN_ALLOW_THREADS;
cb (timer, opaque);
+ LIBVIRT_END_ALLOW_THREADS;
+ }
return VIR_PY_INT_SUCCESS;
}