[libvirt] [PATCH] give up python interpreter lock before calling cb

Dan Kenigsberg danken at redhat.com
Mon Nov 2 16:25:20 UTC 2009


On Mon, Nov 02, 2009 at 04:17:10PM +0000, Daniel P. Berrange wrote:
> On Mon, Nov 02, 2009 at 06:09:52PM +0200, Dan Kenigsberg wrote:
> > suggested by danpb on irc
> > ---
> >  python/libvirt-override.c |    4 ++++
> >  1 files changed, 4 insertions(+), 0 deletions(-)
> > 
> > diff --git a/python/libvirt-override.c b/python/libvirt-override.c
> > index 5d24fd2..53e36c0 100644
> > --- a/python/libvirt-override.c
> > +++ b/python/libvirt-override.c
> > @@ -2355,7 +2355,9 @@ libvirt_virEventInvokeHandleCallback(PyObject *self ATTRIBUTE_UNUSED,
> >      opaque = (void *) PyvirVoidPtr_Get(py_opaque);
> >  
> >      if(cb)
> > +        LIBVIRT_BEGIN_ALLOW_THREADS
> >          cb (watch, fd, event, opaque);
> > +        LIBVIRT_END_ALLOW_THREADS
> 
> You'll need some curly braces around that, otherwise it is doing
> 
>       if(cb)
>          LIBVIRT_BEGIN_ALLOW_THREADS
> 
>       cb (watch, fd, event, opaque);
>       LIBVIRT_END_ALLOW_THREADS

grr. bad case of python poisoning.
anyway, the patch is here only for you not to forget it..




More information about the libvir-list mailing list