[ruby-cvs:70853] normal:r63764 (trunk): process.c (waitpid_wait): do not set ECHILD prematurely

normal at ruby-lang.org normal at ruby-lang.org
Wed Jun 27 19:09:33 JST 2018


normal	2018-06-27 19:09:33 +0900 (Wed, 27 Jun 2018)

  New Revision: 63764

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=63764

  Log:
    process.c (waitpid_wait): do not set ECHILD prematurely
    
    It is possible to have both MJIT and normal child processes
    alive, so we cannot set ECHILD based on such a guess.  We can
    still elide waitpid(PID <= 0) calls if we have callers in
    vm->waiting_pids, however.
    
    For specs, ensure Process.waitall does not leak MJIT
    PIDs to Rubyspace.

  Modified files:
    trunk/process.c
    trunk/spec/mspec/lib/mspec/guards/feature.rb
    trunk/spec/ruby/core/process/wait2_spec.rb
    trunk/spec/ruby/core/process/wait_spec.rb


More information about the ruby-cvs mailing list