summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-11 01:13:10 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-11 01:13:10 +0000
commit300b7c80e4266fd4ed15b503d503f68def64aa67 (patch)
tree482651e55d4d0c5cafc468f0d2852b0d69f5acb1
parentf328b9d0d5a6919fb7d76ac5d344f1b03d388079 (diff)
* process.c (rb_daemon): daemon(3) is implemented with fork(2).
Therefore it needs rb_thread_atfork(). (and revert r41903) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--process.c1
-rw-r--r--test/ruby/test_process.rb12
3 files changed, 6 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 42196547a2..1f39208cf5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jul 11 10:09:18 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * process.c (rb_daemon): daemon(3) is implemented with fork(2).
+ Therefore it needs rb_thread_atfork(). (and revert r41903)
+
Thu Jul 11 03:22:10 2013 Aaron Patterson <aaron@tenderlovemaking.com>
* tool/probes_to_wiki.rb: adding a script to convert probes.d to wiki
diff --git a/process.c b/process.c
index 0f62252cca..7ea74ca2fd 100644
--- a/process.c
+++ b/process.c
@@ -5736,6 +5736,7 @@ rb_daemon(int nochdir, int noclose)
before_fork();
err = daemon(nochdir, noclose);
after_fork();
+ rb_thread_atfork();
#else
int n;
diff --git a/test/ruby/test_process.rb b/test/ruby/test_process.rb
index 226e348156..058494385d 100644
--- a/test/ruby/test_process.rb
+++ b/test/ruby/test_process.rb
@@ -1492,18 +1492,6 @@ class TestProcess < Test::Unit::TestCase
assert_equal(2, data.size, bug4920)
assert_not_include(data.map(&:to_i), pid)
end
- elsif /freebsd/ =~ RUBY_PLATFORM
- def test_daemon_no_threads
- data = Timeout.timeout(3) do
- IO.popen("-") do |f|
- break f.readlines.map(&:chomp) if f
- th = Thread.start {sleep 3}
- Process.daemon(true, true)
- puts Thread.list.size, th.status.inspect
- end
- end
- assert_equal(["2", "\"run\""], data)
- end
else # darwin
def test_daemon_no_threads
data = Timeout.timeout(3) do