mirror of
https://github.com/python/cpython.git
synced 2025-08-02 16:13:13 +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)
|
return apply(self._cobj.open, args, kwargs)
|
||||||
def remove(self, *args, **kwargs):
|
def remove(self, *args, **kwargs):
|
||||||
return apply(self._cobj.remove, 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):
|
def set_cachesize(self, *args, **kwargs):
|
||||||
return apply(self._cobj.set_cachesize, args, kwargs)
|
return apply(self._cobj.set_cachesize, args, kwargs)
|
||||||
def set_data_dir(self, *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 */
|
#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*
|
static PyObject*
|
||||||
DBEnv_set_cachesize(DBEnvObject* self, PyObject* args)
|
DBEnv_set_cachesize(DBEnvObject* self, PyObject* args)
|
||||||
{
|
{
|
||||||
|
@ -4076,6 +4091,7 @@ static PyMethodDef DBEnv_methods[] = {
|
||||||
#if (DBVER >= 40)
|
#if (DBVER >= 40)
|
||||||
{"set_timeout", (PyCFunction)DBEnv_set_timeout, METH_VARARGS|METH_KEYWORDS},
|
{"set_timeout", (PyCFunction)DBEnv_set_timeout, METH_VARARGS|METH_KEYWORDS},
|
||||||
#endif
|
#endif
|
||||||
|
{"set_shm_key", (PyCFunction)DBEnv_set_shm_key, METH_VARARGS},
|
||||||
{"set_cachesize", (PyCFunction)DBEnv_set_cachesize, METH_VARARGS},
|
{"set_cachesize", (PyCFunction)DBEnv_set_cachesize, METH_VARARGS},
|
||||||
{"set_data_dir", (PyCFunction)DBEnv_set_data_dir, METH_VARARGS},
|
{"set_data_dir", (PyCFunction)DBEnv_set_data_dir, METH_VARARGS},
|
||||||
#if (DBVER >= 32)
|
#if (DBVER >= 32)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue