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]
/
bres.pyx
diff --git
a/bres.pyx
b/bres.pyx
index 162ff0268f9cdd3a31f98a77d79d26aaedbd79db..ebc62620af9f07df85b455643ea1b0c9f257cea3 100644
(file)
--- a/
bres.pyx
+++ b/
bres.pyx
@@
-88,7
+88,7
@@
cdef class SelResolveByAddr (SelResolve):
def __init__(me, addr, resolvedproc = None, failedproc = None):
pass
def __init__(me, addr, resolvedproc = None, failedproc = None):
pass
-cdef void _resfunc(hostent *h, void *arg):
+cdef void _resfunc
2
(hostent *h, void *arg):
cdef SelResolve r
cdef int i
r = <SelResolve>arg
cdef SelResolve r
cdef int i
r = <SelResolve>arg
@@
-107,6
+107,10
@@
cdef void _resfunc(hostent *h, void *arg):
addr.append(inet_ntoa((<in_addr *>h.h_addr_list[i])[0]))
i = i + 1
r.resolved(h.h_name, alias, addr)
addr.append(inet_ntoa((<in_addr *>h.h_addr_list[i])[0]))
i = i + 1
r.resolved(h.h_name, alias, addr)
+cdef void _resfunc(hostent *h, void *arg):
+ PyEval_AcquireLock()
+ _resfunc2(h, arg)
+ PyEval_ReleaseLock()
bres_exec(NULL)
bres_init(&_sel)
bres_exec(NULL)
bres_init(&_sel)