Thanks for your answer. >>>>> On Fri, 14 Sep 2001 22:14:55 +0200, Ralf Baechle <ralf@oss.sgi.com> said: ralf> Certain I/O models use a large number of signals so we're trying ralf> hard to keep signal latency down. I agree. ralf> The current code already can guarantee proper termination in ralf> case of a stack fault, just not the shortest way. I can not believe it. There is a case we can not terminate the process: a) If we installed a signal handler for SIGTRAP, b) and a signal queued by a "trap" instruction, c) and a stack fault occured. I will show the reason (again): 1. "trap" instruction raises a exception. 2. The exception handler queues SIGTRAP(5). 3. do_signal() dequeue a signal with LOWEST number. 4. setup_frame() fails and queues SIGSEGV(11). 5. returns to user process (without compute_return_epc()). 6. again from 1. (forever) In this case, dequeue_signal() always return SIGTRAP and any signal which has a larger number than SIGTRAP never be processed, isn't it? Or am I missing something? Thank you. --- Atsushi Nemoto