From 987c03a387fd0cb9cc4880bfffee51e5d18209e8 Mon Sep 17 00:00:00 2001 From: akr Date: Mon, 7 Nov 2011 10:44:02 +0000 Subject: [PATCH] * io.c (rb_close_before_exec): use F_MAXFD if available. F_MAXFD is available on NetBSD since NetBSD 2.0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ io.c | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/ChangeLog b/ChangeLog index 19fedc1d01..43332d48f2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon Nov 7 19:43:10 2011 Tanaka Akira + + * io.c (rb_close_before_exec): use F_MAXFD if available. + F_MAXFD is available on NetBSD since NetBSD 2.0. + Mon Nov 7 19:25:16 2011 NAKAMURA Usaku * test/ruby/test_io_m17n.rb diff --git a/io.c b/io.c index 8dabdbcc9a..307611f7a2 100644 --- a/io.c +++ b/io.c @@ -5123,6 +5123,13 @@ rb_close_before_exec(int lowfd, int maxhint, VALUE noclose_fds) int max = max_file_descriptor; if (max < maxhint) max = maxhint; +#ifdef F_MAXFD + /* F_MAXFD is available since NetBSD 2.0. */ + ret = fcntl(0, F_MAXFD); + if (ret != -1) { + max = ret; + } +#endif for (fd = lowfd; fd <= max; fd++) { if (!NIL_P(noclose_fds) && RTEST(rb_hash_lookup(noclose_fds, INT2FIX(fd))))