Hi,

At Thu, 16 May 2002 14:26:39 +0900,
ts wrote:
> n> Sure.  But I wonder if other values should be preserved.
> 
>  If I've well understood, a signal is always run in the main thread.

Yes.

>  After the signal, ruby must give the control to the current thread (the
>  thread which has received the signal) because this thread need to test if
>  some others signals are pending and it must restore the old value for the
>  main thread.

I guess the check doesn't need to restore the thread.

> pigeon% diff -u eval.c.old eval.c
> --- eval.c.old  Thu May 16 06:58:11 2002
> +++ eval.c      Thu May 16 06:59:08 2002
> @@ -7422,6 +7422,8 @@
>  static int   th_sig;
>  static char *th_signm;
>  
> +static rb_thread_t th_thread;

This patch caused SEGV on signal within trap command.  Maybe
since it isn't reentrant?

-- 
Nobu Nakada