Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6676f6e

Browse files
committed
Support DBEnv.set_shm_key() to allow multi-threaded multi-process
database environments to use shared memory on systems supporting it.
1 parent 376e63d commit 6676f6e

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

Lib/bsddb/dbobj.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ def open(self, *args, **kwargs):
3939
return apply(self._cobj.open, args, kwargs)
4040
def remove(self, *args, **kwargs):
4141
return apply(self._cobj.remove, args, kwargs)
42+
def set_shm_key(self, *args, **kwargs):
43+
return apply(self._cobj.set_shm_key, args, kwargs)
4244
def set_cachesize(self, *args, **kwargs):
4345
return apply(self._cobj.set_cachesize, args, kwargs)
4446
def set_data_dir(self, *args, **kwargs):

Modules/_bsddb.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3276,6 +3276,21 @@ DBEnv_set_timeout(DBEnvObject* self, PyObject* args, PyObject* kwargs)
32763276
}
32773277
#endif /* DBVER >= 40 */
32783278

3279+
static PyObject*
3280+
DBEnv_set_shm_key(DBEnvObject* self, PyObject* args)
3281+
{
3282+
int err;
3283+
long shm_key = 0;
3284+
3285+
if (!PyArg_ParseTuple(args, "l:set_shm_key", &shm_key))
3286+
return NULL;
3287+
CHECK_ENV_NOT_CLOSED(self);
3288+
3289+
err = self->db_env->set_shm_key(self->db_env, shm_key);
3290+
RETURN_IF_ERR();
3291+
RETURN_NONE();
3292+
}
3293+
32793294
static PyObject*
32803295
DBEnv_set_cachesize(DBEnvObject* self, PyObject* args)
32813296
{
@@ -4076,6 +4091,7 @@ static PyMethodDef DBEnv_methods[] = {
40764091
#if (DBVER >= 40)
40774092
{"set_timeout", (PyCFunction)DBEnv_set_timeout, METH_VARARGS|METH_KEYWORDS},
40784093
#endif
4094+
{"set_shm_key", (PyCFunction)DBEnv_set_shm_key, METH_VARARGS},
40794095
{"set_cachesize", (PyCFunction)DBEnv_set_cachesize, METH_VARARGS},
40804096
{"set_data_dir", (PyCFunction)DBEnv_set_data_dir, METH_VARARGS},
40814097
#if (DBVER >= 32)

0 commit comments

Comments
 (0)