From 2d2dda3fcc98605773b5d527706481fc51f4dffd Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 13 Feb 2013 18:09:39 +0700 Subject: [PATCH] #47 --- pyejdb/src/pejdb.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pyejdb/src/pejdb.c b/pyejdb/src/pejdb.c index cbd3977..0db1a22 100644 --- a/pyejdb/src/pejdb.c +++ b/pyejdb/src/pejdb.c @@ -64,11 +64,15 @@ static PyObject* EJDB_dropCollection(PEJDB *self, PyObject *args, PyObject *kwar const char *cname; PyObject *prune = Py_False; static char *kwlist[] = {"cname", "prune", NULL}; + bool bres = false; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|O:EJDB_dropCollection", kwlist, &cname, &prune)) { return NULL; } - if (!ejdbrmcoll(self->ejdb, cname, (prune == Py_True))) { + Py_BEGIN_ALLOW_THREADS + bres = ejdbrmcoll(self->ejdb, cname, (prune == Py_True)); + Py_END_ALLOW_THREADS + if (!bres) { return set_ejdb_error(self->ejdb); } Py_RETURN_NONE; @@ -89,7 +93,10 @@ static PyObject* EJDB_ensureCollection(PEJDB *self, PyObject *args, PyObject *kw jcopts.compressed = (compressed == Py_True); jcopts.large = (large == Py_True); jcopts.records = (records > 0) ? records : 0; - EJCOLL *coll = ejdbcreatecoll(self->ejdb, cname, &jcopts); + EJCOLL *coll; + Py_BEGIN_ALLOW_THREADS + coll = ejdbcreatecoll(self->ejdb, cname, &jcopts); + Py_END_ALLOW_THREADS if (!coll) { return set_ejdb_error(self->ejdb); } -- 2.7.4