mirror of
https://github.com/python/cpython.git
synced 2025-10-17 20:28:43 +00:00
Support DBEnv.set_shm_key() to allow multi-threaded multi-process
database environments to use shared memory on systems supporting it.
This commit is contained in:
parent
376e63d5cd
commit
6676f6edc1
2 changed files with 18 additions and 0 deletions
|
@ -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):
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue