[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How to make sure that signal handlers are run?



On Mon, Jul 23, 2001 at 03:20:58AM -0400, Roland McGrath wrote:
> > BTW, when is SA_RESETHAND functionality getting implemented? :-)
> 
> I can't tell if you're joking.  Does anybody care?  Those boneheaded
> options have always been trivial and just noone ever knew a reason to
> bother with them.  But since you asked, I just did it (also SA_NODEFER).

I was half joking, because SA_RESETHAND was first noted as missing
last fall. SUSv2 (at least the version I have) defines the following
SA_* constants:
	SA_NOCLDSTOP
	SA_ONSTACK
	SA_RESETHAND
	SA_RESTART
	SA_SIGINFO
	SA_NOCLDWAIT
	SA_NODEFER

Curently only SA_ONSTACK, SA_RESTART, and SA_NODEFER are defined, because
Hurd uses glibc's generic version of bits/sigaction.h. You said now
we also have SA_RESETHAND and SA_NODEFER. But there's more to implement.
These options may be boneheaded, but they ard standard and there are
programs that use them.

Also, SA_SIGINFO may not be so trivial to implement, since it requires
the signal handler to be invoked with the proto type:


void (*sa_sigaction)(int signo, siginfo_t *info, void *context);

While at the moment, all hurd signal handlers are called implicitly
with the prototype:

void (*handler)(int sig, int code, struct sigcontext *scp);

Igor



Reply to: