]> granicus.if.org Git - python/commitdiff
Support DBEnv.set_shm_key() to allow multi-threaded multi-process
authorGregory P. Smith <greg@mad-scientist.com>
Thu, 28 Aug 2003 21:50:30 +0000 (21:50 +0000)
committerGregory P. Smith <greg@mad-scientist.com>
Thu, 28 Aug 2003 21:50:30 +0000 (21:50 +0000)
database environments to use shared memory on systems supporting it.

Lib/bsddb/dbobj.py
Modules/_bsddb.c

index d23f533f3474cb92fd47abd87776627d33d00ffb..abda657ba6211f3c7469e493be7ec7aaf5bc2f8c 100644 (file)
@@ -39,6 +39,8 @@ class DBEnv:
         return apply(self._cobj.open, args, kwargs)
     def remove(self, *args, **kwargs):
         return apply(self._cobj.remove, args, kwargs)
+    def set_shm_key(self, *args, **kwargs):
+        return apply(self._cobj.set_shm_key, args, kwargs)
     def set_cachesize(self, *args, **kwargs):
         return apply(self._cobj.set_cachesize, args, kwargs)
     def set_data_dir(self, *args, **kwargs):
index 990c89f215bd170e3a369e71a07012482a606afc..dcbcdb37cee9dbe5b3a9c76d0a61f8d7f817273a 100644 (file)
@@ -3276,6 +3276,21 @@ DBEnv_set_timeout(DBEnvObject* self, PyObject* args, PyObject* kwargs)
 }
 #endif /* DBVER >= 40 */
 
+static PyObject*
+DBEnv_set_shm_key(DBEnvObject* self, PyObject* args)
+{
+    int err;
+    long shm_key = 0;
+
+    if (!PyArg_ParseTuple(args, "l:set_shm_key", &shm_key))
+        return NULL;
+    CHECK_ENV_NOT_CLOSED(self);
+
+    err = self->db_env->set_shm_key(self->db_env, shm_key);
+    RETURN_IF_ERR();
+    RETURN_NONE();
+}
+
 static PyObject*
 DBEnv_set_cachesize(DBEnvObject* self, PyObject* args)
 {
@@ -4076,6 +4091,7 @@ static PyMethodDef DBEnv_methods[] = {
 #if (DBVER >= 40)
     {"set_timeout",     (PyCFunction)DBEnv_set_timeout,      METH_VARARGS|METH_KEYWORDS},
 #endif
+    {"set_shm_key",     (PyCFunction)DBEnv_set_shm_key,      METH_VARARGS},
     {"set_cachesize",   (PyCFunction)DBEnv_set_cachesize,    METH_VARARGS},
     {"set_data_dir",    (PyCFunction)DBEnv_set_data_dir,     METH_VARARGS},
 #if (DBVER >= 32)