summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asmrun/fail.c2
-rw-r--r--asmrun/signals.c18
-rw-r--r--otherlibs/systhreads/posix.c2
3 files changed, 4 insertions, 18 deletions
diff --git a/asmrun/fail.c b/asmrun/fail.c
index 57146b64c..d00014ef2 100644
--- a/asmrun/fail.c
+++ b/asmrun/fail.c
@@ -79,6 +79,7 @@ void caml_raise_constant(value tag)
bucket = caml_alloc_small (1, 0);
Field(bucket, 0) = tag;
caml_raise(bucket);
+ CAMLnoreturn;
}
void caml_raise_with_arg(value tag, value arg)
@@ -90,6 +91,7 @@ void caml_raise_with_arg(value tag, value arg)
Field(bucket, 0) = tag;
Field(bucket, 1) = arg;
caml_raise(bucket);
+ CAMLnoreturn;
}
void caml_raise_with_string(value tag, char *msg)
diff --git a/asmrun/signals.c b/asmrun/signals.c
index 4ac55d041..efc73ce7e 100644
--- a/asmrun/signals.c
+++ b/asmrun/signals.c
@@ -224,24 +224,6 @@ void caml_leave_blocking_section(void)
caml_async_signal_mode = 0;
}
-#ifdef POSIX_SIGNALS
-static void reraise(int sig, int now)
-{
- struct sigaction sa;
- sa.sa_handler = 0;
- sa.sa_flags = 0;
- sigemptyset(&sa.sa_mask);
- sigaction(sig, &sa, 0);
- /* If the signal was sent using kill() (si_code == 0) or will
- not recur then raise it here. Otherwise return. The
- offending instruction will be reexecuted and the signal
- will recur. */
- if (now == 1)
- raise(sig);
- return;
-}
-#endif
-
#if defined(TARGET_alpha) || defined(TARGET_mips)
static void handle_signal(int sig, int code, struct sigcontext * context)
#elif defined(TARGET_power) && defined(SYS_aix)
diff --git a/otherlibs/systhreads/posix.c b/otherlibs/systhreads/posix.c
index 13c5a6379..b65534f61 100644
--- a/otherlibs/systhreads/posix.c
+++ b/otherlibs/systhreads/posix.c
@@ -396,7 +396,9 @@ static void * caml_thread_start(void * arg)
{
caml_thread_t th = (caml_thread_t) arg;
value clos;
+#ifdef NATIVE_CODE
struct longjmp_buffer termination_buf;
+#endif
/* Associate the thread descriptor with the thread */
pthread_setspecific(thread_descriptor_key, (void *) th);