[ruby-cvs:71668] normal:r64576 (trunk): process.c: simplify SIGCHLD-based waitpid

normal at ruby-lang.org normal at ruby-lang.org
Tue Aug 28 02:17:13 JST 2018


normal	2018-08-28 02:17:13 +0900 (Tue, 28 Aug 2018)

  New Revision: 64576

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

  Log:
    process.c: simplify SIGCHLD-based waitpid
    
    Introduce a new rb_thread_sleep_interruptible that does not
    execute interrupts before sleeping.  Skipping the interrupt
    check before sleep is required for out-of-GVL ruby_waitpid_all
    to function properly when setting waitpid_state.ret
    
    Now that ubf_select can be called by the gvl.timer thread
    without recursive locking gvl.lock, we can safely use
    rb_threadptr_interrupt to deal with waking up sleeping
    processes,

  Modified files:
    trunk/process.c
    trunk/thread.c
    trunk/thread_pthread.c


More information about the ruby-cvs mailing list