* Copyright (c) 1989 Regents of the University of California.
* %sccs.include.redist.c%
#if defined(LIBC_SCCS) && !defined(lint)
static char sccsid
[] = "@(#)siginterrupt.c 5.5 (Berkeley) %G%";
#endif /* LIBC_SCCS and not lint */
* Set signal state to prevent restart of system calls
* after an instance of the indicated signal.
extern sigset_t _sigintr
;
if ((ret
= sigaction(sig
, (struct sigaction
*)0, &sa
)) < 0)
sigaddset(&_sigintr
, sig
);
sa
.sa_flags
&= ~SA_RESTART
;
sigdelset(&_sigintr
, sig
);
sa
.sa_flags
|= SA_RESTART
;
return (sigaction(sig
, &sa
, (struct sigaction
*)0));