From: KOSAKI Motohiro Date: 2011-08-28T09:42:01+09:00 Subject: [ruby-core:39153] Re: [Ruby 1.9 - Bug #5239][Assigned] bootstraptest/runner.rb: assert_normal_exit logic broken on Debian/GNU kFreeBSD >> > RATIONALE >> > A call to the wait() or waitpid() function only returns status on an immediate child process of the *calling process* >> >> The pthread rule is, pthread_create() doen't introduce any process tree change. In the other words, kFreeBSD is buggy. > > One could argue that a different PID makes a different process, but it's > correct that it's not a different process. popen makes different process. and Thread.new don't make a process. isn't it? Therefore a subthread clealy can use waitpid() for waiting child process. Moreover real FreeBSD works this test completely. It's only kFreeBSD issue. I wonder why kFreeBSD don't handle threading correctly. Long time ago, linuxthreads made the same mistake and application users sufferd from it. I didn't expected we observed the same issue at 21th century.