ninjudd-bdb 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/bdb.gemspec +1 -1
  2. data/ext/bdb.c +50 -0
  3. metadata +1 -1
data/bdb.gemspec CHANGED
@@ -2,7 +2,7 @@ BDB_SPEC = Gem::Specification.new do |s|
2
2
  s.platform = Gem::Platform::RUBY
3
3
  s.required_ruby_version = '>=1.8.4'
4
4
  s.name = "bdb"
5
- s.version = "0.0.8"
5
+ s.version = "0.0.9"
6
6
  s.authors = ["Matt Bauer", "Dan Janowski"]
7
7
  s.email = "bauer@pedalbrain.com"
8
8
  s.summary = "A Ruby interface to BerkeleyDB"
data/ext/bdb.c CHANGED
@@ -2315,6 +2315,54 @@ VALUE env_get_tx_max(VALUE obj)
2315
2315
  return INT2FIX(max);
2316
2316
  }
2317
2317
 
2318
+ /*
2319
+ * call-seq:
2320
+ * env.mutex_set_max(max) -> max
2321
+ *
2322
+ * Set the maximum number of mutexes with the environment
2323
+ */
2324
+ VALUE env_mutex_set_max(VALUE obj, VALUE vmax)
2325
+ {
2326
+ t_envh *eh;
2327
+ u_int32_t max;
2328
+ int rv;
2329
+
2330
+ max=FIX2UINT(vmax);
2331
+
2332
+ Data_Get_Struct(obj,t_envh,eh);
2333
+ if (!eh->env)
2334
+ raise(0, "env is closed");
2335
+ rv=eh->env->mutex_set_max(eh->env,max);
2336
+ if ( rv != 0 ) {
2337
+ raise_error(rv, "env_mutex_set_max: %s",db_strerror(rv));
2338
+ }
2339
+
2340
+ return vmax;
2341
+ }
2342
+
2343
+ /*
2344
+ * call-seq
2345
+ * env.mutex_get_max -> Fixnum
2346
+ *
2347
+ * Get current maximum number of mutexes.
2348
+ */
2349
+ VALUE env_mutex_get_max(VALUE obj)
2350
+ {
2351
+ t_envh *eh;
2352
+ u_int32_t max;
2353
+ int rv;
2354
+
2355
+ Data_Get_Struct(obj,t_envh,eh);
2356
+ if (!eh->env)
2357
+ raise(0, "env is closed");
2358
+ rv=eh->env->mutex_get_max(eh->env,&max);
2359
+ if ( rv != 0 ) {
2360
+ raise_error(rv, "env_mutex_get_max: %s",db_strerror(rv));
2361
+ }
2362
+
2363
+ return INT2FIX(max);
2364
+ }
2365
+
2318
2366
  /*
2319
2367
  * call-seq:
2320
2368
  * env.set_shm_key(key) -> max
@@ -2935,6 +2983,8 @@ void Init_bdb() {
2935
2983
  rb_define_method(cEnv,"set_timeout",env_set_timeout,2);
2936
2984
  rb_define_method(cEnv,"get_timeout",env_get_timeout,1);
2937
2985
  rb_define_method(cEnv,"set_tx_max",env_set_tx_max,1);
2986
+ rb_define_method(cEnv,"mutex_get_max",env_mutex_get_max,0);
2987
+ rb_define_method(cEnv,"mutex_set_max",env_mutex_set_max,1);
2938
2988
  rb_define_method(cEnv,"get_tx_max",env_get_tx_max,0);
2939
2989
  rb_define_method(cEnv,"report_stderr",env_report_stderr,0);
2940
2990
  rb_define_method(cEnv,"set_lk_detect",env_set_lk_detect,1);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ninjudd-bdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Bauer