chiark
/
gitweb
/
~mdw
/
mLib-python
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Acquire and release the GIL around select callbacks.
[mLib-python]
/
selpk.pyx
diff --git
a/selpk.pyx
b/selpk.pyx
index fe85a9f0f08ffd86f80f254427bdb872b5c92d25..5d7e9cbc780316cb7f796c12f3f72ccd901fe5d9 100644
(file)
--- a/
selpk.pyx
+++ b/
selpk.pyx
@@
-84,8
+84,8
@@
cdef class SelPacketBuffer:
def eof(me):
return _maybecall(me._eof, ())
def eof(me):
return _maybecall(me._eof, ())
-cdef void _selpkfunc(unsigned char *p, size_t n, pkbuf *pk,
- size_t *keep, void *arg):
+cdef void _selpkfunc
2
(unsigned char *p, size_t n, pkbuf *pk,
+
size_t *keep, void *arg):
cdef SelPacketBuffer pb
cdef void *rp
cdef int rn
cdef SelPacketBuffer pb
cdef void *rp
cdef int rn
@@
-101,5
+101,10
@@
cdef void _selpkfunc(unsigned char *p, size_t n, pkbuf *pk,
if rn:
memcpy(p + n - rn, rp, rn)
keep[0] = rn
if rn:
memcpy(p + n - rn, rp, rn)
keep[0] = rn
+cdef void _selpkfunc(unsigned char *p, size_t n, pkbuf *pk,
+ size_t *keep, void *arg):
+ PyEval_AcquireLock()
+ _selpkfunc2(p, n, pk, keep, arg)
+ PyEval_ReleaseLock()
#----- That's all, folks ----------------------------------------------------
#----- That's all, folks ----------------------------------------------------