chiark / gitweb /
Acquire and release the GIL around select callbacks.
[mLib-python] / selbuf.pyx
index 4a5a28898ca9e72ac1b2a3901d3846fc23d36b10..b8fae431f8c9b74ff80af5d029e37cac3976ccb2 100644 (file)
@@ -95,12 +95,16 @@ cdef class SelLineBuffer:
   def eof(me):
     return _maybecall(me._eof, ())
 
-cdef void _selbfunc(char *s, size_t n, void *arg):
+cdef void _selbfunc2(char *s, size_t n, void *arg):
   cdef SelLineBuffer sb
   sb = <SelLineBuffer>arg
   if s is NULL:
     sb.eof()
   else:
     sb.line(PyString_FromStringAndSize(s, n))
+cdef void _selbfunc(char *s, size_t n, void *arg):
+  PyEval_AcquireLock()
+  _selbfunc2(s, n, arg)
+  PyEval_ReleaseLock()
 
 #----- That's all, folks ----------------------------------------------------