diff --git a/python/opendht.pyx b/python/opendht.pyx index 0cd77a560ead93675d5945dd7b9ce0e65261d7a5..7eefb580d4b672b2761b5c28ead28e5dd6cc9ae6 100644 --- a/python/opendht.pyx +++ b/python/opendht.pyx @@ -277,15 +277,19 @@ cdef class DhtRunner(_WithID): else: lock = threading.Condition() pending = 0 + res = [] + def tmp_get(v): + nonlocal res + res.append(v) + return True def tmp_done(ok, nodes): nonlocal pending, lock with lock: pending -= 1 lock.notify() - res = [] with lock: pending += 1 - self.get(key, get_cb=lambda v: res.append(v), done_cb=tmp_done) + self.get(key, get_cb=tmp_get, done_cb=tmp_done) while pending > 0: lock.wait() return res