From: usa@... Date: 2014-06-23T09:50:39+00:00 Subject: [ruby-core:63295] [ruby-trunk - Bug #9751] Process.wait does not work correctly in a thread Issue #9751 has been updated by Usaku NAKAMURA. backported into `ruby_2_0_0` at r46518. ---------------------------------------- Bug #9751: Process.wait does not work correctly in a thread https://bugs.ruby-lang.org/issues/9751#change-47344 * Author: Sam Saffron * Status: Closed * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: 1.9, 2.0, 2.1, 2.2 * Backport: 2.0.0: REQUIRED, 2.1: DONE ---------------------------------------- The following code fails under Ruby 1.9+, used to work on 1.8 with green threads ``` def test if pid = fork puts "child pid is #{pid} waiting ..." begin Process.wait(pid) puts "child exited" rescue => e p e end else sleep 3 puts "exiting child" exit 0 end end # this works as expected test puts "testing in thread" # this will hang Thread.new do test end.join ``` Additionally on SIGINT I am seeing a zombie + [BUG] pthread_mutex_lock: Invalid argument (EINVAL) -- https://bugs.ruby-lang.org/