Re: RFC: 'more signals' patch, 2.1.33

Theodore Y. Ts'o (tytso@MIT.EDU)
Tue, 15 Apr 1997 18:37:17 -0400

From: Richard Henderson <>
Date: Tue, 15 Apr 1997 14:46:29 -0500 (CDT)

We will, pretty much by definition, require a new set of syscalls to
handle the new signals. I suggest we do it in such a way that the
kernel and libc are somewhat disconnected about the number of signals.

With libc 6.x, the syscall interface and the libc interface are already

A slightly more difficult situation is what to do with sigsets
smaller than the kernel's, at least if we do manage to decouple
libc from other libraries from the application. Consider the
common idiom.

struct sigaction new, old;

new = ...
sigaction(SIGFOO, &new, &old);
sigaction(SIGFOO, &old, NULL);

That's easy; the library routine sigaction can simply return an error if
SIGFOO is beyond what libc can handle. Hence, the number of signals you
can handle is always the minimum of what libc can handle and what the
kernel can handle.

Note that libc 6.x already has the limit set at 1024 signals, which
should be far, far, far more than you will ever need. If you come even
close to that limit, you're doing something really wrong.

- Ted