ngotogenome / gmail.com wrote:
> With the patch, when exec system call fails, signals that are sent
> after stopping the timer thread before re-starting the timer thread
> may be ignored.

I'm not seeing it, did you notice/reproduce this failure?

I see:

1) rb_thread_stop_timer_thread()

2) signal received:
    sighandler
      -> signal_enque -> ATOMIC_INC(signal_buff.size) (++)
      -> rb_thread_wakeup_timer_thread -> noop since TT not running

3) exec fails

4) rb_thread_start_timer_thread()
    -> pthread_create(..., thread_timer)
      -> thread_timer
        -> timer_thread_function
          -> rb_threadptr_check_signal
            -> if (rb_signal_buff_size() > 0) { /* true from (++) */
                /* continue processing signals */

In other words, I'm not seeing a problem based on the (++) steps.