-enum {
- LONGJMP_MAGIC = 0x01234567,
- LONGJMP_NSIG = 3,
- LONGJMP_FIRSTSIG = SIGRTMIN + 1,
-};
-
-int jmp_used_signals [LONGJMP_NSIG] = {[0 ... (LONGJMP_NSIG - 1)] = 0};
-
-
-int fosa_long_jump_save_context
- (fosa_long_jump_context_t * context)
-{
- if (!context)
- return FOSA_EINVAL;
-
- // Save the actual signal mask & mark the jump as still not performed
- pthread_sigmask (SIG_SETMASK, NULL, &(context -> jmp_sigmask));
- context -> jmp_hasexecuted = false;
-
- if (setjmp (context -> jmp_context) == LONGJMP_MAGIC) {
-#ifndef CONFIG_LONGJUMP_FREE_SIGNALS
- pthread_sigmask (SIG_SETMASK, &(context -> jmp_sigmask), NULL);
-#endif
- context -> jmp_hasexecuted = true;
- }
- return 0;
-}
+#define LONGJMP_MAGIC 0x01234567
+pthread_t jmp_used_signals [LONGJMP_NSIG] = {[0 ... (LONGJMP_NSIG - 1)] = NULL};
+pthread_mutex_t signal_pool_m = PTHREAD_MUTEX_INITIALIZER;