add mutex_set_max
This commit is contained in:
parent
f5d2054739
commit
2abc1addd4
|
@ -2,7 +2,7 @@ BDB_SPEC = Gem::Specification.new do |s|
|
|||
s.platform = Gem::Platform::RUBY
|
||||
s.required_ruby_version = '>=1.8.4'
|
||||
s.name = "bdb"
|
||||
s.version = "0.0.8"
|
||||
s.version = "0.0.9"
|
||||
s.authors = ["Matt Bauer", "Dan Janowski"]
|
||||
s.email = "bauer@pedalbrain.com"
|
||||
s.summary = "A Ruby interface to BerkeleyDB"
|
||||
|
|
50
ext/bdb.c
50
ext/bdb.c
|
@ -2315,6 +2315,54 @@ VALUE env_get_tx_max(VALUE obj)
|
|||
return INT2FIX(max);
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* env.mutex_set_max(max) -> max
|
||||
*
|
||||
* Set the maximum number of mutexes with the environment
|
||||
*/
|
||||
VALUE env_mutex_set_max(VALUE obj, VALUE vmax)
|
||||
{
|
||||
t_envh *eh;
|
||||
u_int32_t max;
|
||||
int rv;
|
||||
|
||||
max=FIX2UINT(vmax);
|
||||
|
||||
Data_Get_Struct(obj,t_envh,eh);
|
||||
if (!eh->env)
|
||||
raise(0, "env is closed");
|
||||
rv=eh->env->mutex_set_max(eh->env,max);
|
||||
if ( rv != 0 ) {
|
||||
raise_error(rv, "env_mutex_set_max: %s",db_strerror(rv));
|
||||
}
|
||||
|
||||
return vmax;
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq
|
||||
* env.mutex_get_max -> Fixnum
|
||||
*
|
||||
* Get current maximum number of mutexes.
|
||||
*/
|
||||
VALUE env_mutex_get_max(VALUE obj)
|
||||
{
|
||||
t_envh *eh;
|
||||
u_int32_t max;
|
||||
int rv;
|
||||
|
||||
Data_Get_Struct(obj,t_envh,eh);
|
||||
if (!eh->env)
|
||||
raise(0, "env is closed");
|
||||
rv=eh->env->mutex_get_max(eh->env,&max);
|
||||
if ( rv != 0 ) {
|
||||
raise_error(rv, "env_mutex_get_max: %s",db_strerror(rv));
|
||||
}
|
||||
|
||||
return INT2FIX(max);
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* env.set_shm_key(key) -> max
|
||||
|
@ -2935,6 +2983,8 @@ void Init_bdb() {
|
|||
rb_define_method(cEnv,"set_timeout",env_set_timeout,2);
|
||||
rb_define_method(cEnv,"get_timeout",env_get_timeout,1);
|
||||
rb_define_method(cEnv,"set_tx_max",env_set_tx_max,1);
|
||||
rb_define_method(cEnv,"mutex_get_max",env_mutex_get_max,0);
|
||||
rb_define_method(cEnv,"mutex_set_max",env_mutex_set_max,1);
|
||||
rb_define_method(cEnv,"get_tx_max",env_get_tx_max,0);
|
||||
rb_define_method(cEnv,"report_stderr",env_report_stderr,0);
|
||||
rb_define_method(cEnv,"set_lk_detect",env_set_lk_detect,1);
|
||||
|
|
Loading…
Reference in a new issue