[ruby-cvs:71051] normal:r63960 (trunk): timer_thread: do not close pipes around fork

normal at ruby-lang.org normal at ruby-lang.org
Fri Jul 13 08:23:25 JST 2018


normal	2018-07-13 08:23:25 +0900 (Fri, 13 Jul 2018)

  New Revision: 63960

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

  Log:
    timer_thread: do not close pipes around fork
    
    There's actually no need to close the pipes used by the
    sleepy timer thread before forking, only to stop the timer
    thread itself.
    
    Instead, we only close the parent pipes in the child process,
    either via close-on-exec flag or when reinitializing the timer
    thread.
    
    This change will be necessary when we allow
    rb_wait_for_single_fd and rb_thread_fd_select to wait on the
    timer_thread_pipe.normal[0] directly and eliminate timer thread.
    
    I don't anticipate compatibility problems with this change
    alone.

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


More information about the ruby-cvs mailing list