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:
Gregory P. Smith 2003-08-28 21:50:30 +00:00
parent 376e63d5cd
commit 6676f6edc1
2 changed files with 18 additions and 0 deletions

View file

@ -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):

View file

@ -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)