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