projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
change jmp_buf to share an underlying type and struct tag with sigjmp_buf
[musl]
/
src
/
signal
/
siglongjmp.c
diff --git
a/src/signal/siglongjmp.c
b/src/signal/siglongjmp.c
index
1712917
..
2974ff7
100644
(file)
--- a/
src/signal/siglongjmp.c
+++ b/
src/signal/siglongjmp.c
@@
-1,12
+1,11
@@
#include <setjmp.h>
#include <signal.h>
#include <stdlib.h>
#include <setjmp.h>
#include <signal.h>
#include <stdlib.h>
+#include "syscall.h"
+#include "pthread_impl.h"
-void siglongjmp(sigjmp_buf buf, int ret)
+
_Noreturn
void siglongjmp(sigjmp_buf buf, int ret)
{
{
- unsigned long *flag = buf + sizeof(jmp_buf)/sizeof(long);
- sigset_t *mask = (void *)(flag + 1);
- if (*flag)
- sigprocmask (SIG_SETMASK, mask, NULL);
- longjmp((void *)buf, ret);
+ if (buf->__fl) __restore_sigs(buf->__ss);
+ longjmp(buf, ret);
}
}