ninjudd-bdb 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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