summaryrefslogtreecommitdiff
path: root/src/signal/siginterrupt.c
blob: ea325ca66690de32a8dbb696a4a192408be10e0e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <sys/types.h>
#include <signal.h>

int siginterrupt(int sig, int flag)
{
	struct sigaction sa = { 0 };
	int ret = -1;

	sigaction(sig, NULL, &sa);
	if (flag) {
		sa.sa_flags &= ~SA_RESTART;
	} else {
		sa.sa_flags |= SA_RESTART;
	}
	return sigaction(sig, &sa, NULL);
}

/*
XOPEN(400)
*/