From: Gregory P. Smith Date: Thu, 15 May 2003 00:13:18 +0000 (+0000) Subject: DB.remove() needs to set the internal DB handle to NULL after being called. X-Git-Tag: v2.3c1~717 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f655dff80782cd6bf59d64985299bd07546cb98b;p=python DB.remove() needs to set the internal DB handle to NULL after being called. (sourceforge pybsddb bug #737970). Also: don't allow other threads to run during calls that invalidate the DB handle. --- diff --git a/Modules/_bsddb.c b/Modules/_bsddb.c index eb2b516914..7a4f9e1762 100644 --- a/Modules/_bsddb.c +++ b/Modules/_bsddb.c @@ -1135,9 +1135,7 @@ DB_close(DBObject* self, PyObject* args) if (self->db != NULL) { if (self->myenvobj) CHECK_ENV_NOT_CLOSED(self->myenvobj); - MYDB_BEGIN_ALLOW_THREADS; err = self->db->close(self->db, flags); - MYDB_END_ALLOW_THREADS; self->db = NULL; RETURN_IF_ERR(); } @@ -1707,9 +1705,8 @@ DB_remove(DBObject* self, PyObject* args, PyObject* kwargs) return NULL; CHECK_DB_NOT_CLOSED(self); - MYDB_BEGIN_ALLOW_THREADS; err = self->db->remove(self->db, filename, database, flags); - MYDB_END_ALLOW_THREADS; + self->db = NULL; RETURN_IF_ERR(); RETURN_NONE(); }