• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <signal.h>
2 #include "syscall.h"
3 
sigsuspend(const sigset_t * mask)4 int sigsuspend(const sigset_t *mask)
5 {
6 #ifdef __LITEOS_A__
7 	int ret, retval;
8 	sigset_t oldset;
9 
10 	retval = sigprocmask(SIG_BLOCK, 0, &oldset);
11 	if (retval != 0) {
12 		return retval;
13 	}
14 
15 	ret = syscall_cp(SYS_rt_sigsuspend, mask, _NSIG/8);
16 
17 	if (ret == -1) {
18 		retval = sigprocmask(SIG_SETMASK, &oldset, 0);
19 		if (retval != 0) {
20 			return retval;
21 		}
22 	}
23 
24 	return ret;
25 #else
26 	return syscall_cp(SYS_rt_sigsuspend, mask, _NSIG/8);
27 #endif
28 }
29