aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-11-11 12:14:23 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-11-11 12:14:23 +0000
commit268f6c3680ca5895630f92025a66ba67c2a0c7e2 (patch)
treeab4a5e4d50bb3d0fe7b35267a6cfd2230869c124
parent266d09839b436b2ecc1d95456db4771b5a8119db (diff)
downloadruby-268f6c3680ca5895630f92025a66ba67c2a0c7e2.tar.gz
* ext/gdbm/gdbm.c (fgdbm_initialize): use GDBM_CLOEXEC if available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--ext/gdbm/gdbm.c5
2 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index d57c03bfde..89af6840d6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Fri Nov 11 21:13:30 2011 Tanaka Akira <akr@fsij.org>
+
+ * ext/gdbm/gdbm.c (fgdbm_initialize): use GDBM_CLOEXEC if available.
+
Fri Nov 11 21:00:05 2011 Tanaka Akira <akr@fsij.org>
* ext/dbm/extconf.rb: fix dbm_pagfno and dbm_dirfno detection with
diff --git a/ext/gdbm/gdbm.c b/ext/gdbm/gdbm.c
index 6364fc5807..6f0709e4ac 100644
--- a/ext/gdbm/gdbm.c
+++ b/ext/gdbm/gdbm.c
@@ -210,6 +210,11 @@ fgdbm_initialize(int argc, VALUE *argv, VALUE obj)
SafeStringValue(file);
+#ifdef GDBM_CLOEXEC
+ /* GDBM_CLOEXEC is implemented in gdbm 1.9.90 (development version after gdbm-1.9.1). */
+ flags |= GDBM_CLOEXEC;
+#endif
+
if (flags & RUBY_GDBM_RW_BIT) {
flags &= ~RUBY_GDBM_RW_BIT;
dbm = gdbm_open(RSTRING_PTR(file), MY_BLOCK_SIZE,