diff --git a/rocksdb/_rocksdb.pyx b/rocksdb/_rocksdb.pyx index 4c8b354..08201ba 100644 --- a/rocksdb/_rocksdb.pyx +++ b/rocksdb/_rocksdb.pyx @@ -159,7 +159,8 @@ cdef class PyGenericComparator(PyComparator): def __dealloc__(self): if not self.comparator_ptr == NULL: - del self.comparator_ptr + with nogil: + del self.comparator_ptr cdef object get_ob(self): return self.ob @@ -771,7 +772,8 @@ cdef class _ColumnFamilyHandle: def __dealloc__(self): if not self.handle == NULL: - del self.handle + with nogil: + del self.handle @staticmethod cdef from_handle_ptr(db.ColumnFamilyHandle* handle): @@ -879,7 +881,8 @@ cdef class ColumnFamilyOptions(object): def __dealloc__(self): if not self.copts == NULL: - del self.copts + with nogil: + del self.copts def __init__(self, **kwargs): self.py_comparator = BytewiseComparator() @@ -1290,8 +1293,9 @@ cdef class Options(ColumnFamilyOptions): def __dealloc__(self): if not self.opts == NULL: - self.copts = NULL - del self.opts + with nogil: + del self.copts + del self.opts def __init__(self, **kwargs): ColumnFamilyOptions.__init__(self) @@ -1551,7 +1555,8 @@ cdef class WriteBatch(object): def __dealloc__(self): if not self.batch == NULL: - del self.batch + with nogil: + del self.batch def put(self, key, value): cdef db.ColumnFamilyHandle* cf_handle = NULL @@ -2305,7 +2310,8 @@ cdef class BaseIterator(object): def __dealloc__(self): if not self.ptr == NULL: - del self.ptr + with nogil: + del self.ptr def __iter__(self): return self