Dan Eloff wrote .. > I know this isn't about mod_python, but I can think of nobody better > qualified to answer this question than mod_python developers. > > If in a C function you release the GIl using begin/end allow threads, > does it change your responsibilites with regard to the reference > counts on the input parameters? > > unsigned char * str; > int len; > > PyArg_Parse(args, "s#", &str, &len) > > Now if you do a Py_BEGIN_ALLOW_THREADS, and do something time > consuming without any python calls, can you count on str not being > deallocated somehow while you work?
I would have assumed that the code is safe as the calling Python stack frame still holds a reference count on any objects passed to you and since it is waiting for you to finish, even if in an allow threads state, there shouldn't be anyway that its reference count could be undone. Graham