summaryrefslogtreecommitdiffstats
path: root/byterun/signals.c
diff options
context:
space:
mode:
Diffstat (limited to 'byterun/signals.c')
-rw-r--r--byterun/signals.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/byterun/signals.c b/byterun/signals.c
index ce8f2ae72..13e58bc11 100644
--- a/byterun/signals.c
+++ b/byterun/signals.c
@@ -48,7 +48,8 @@ void process_event(void)
{
int signal_number;
void (*async_action)(void);
- if (force_major_slice) minor_collection (); /* FIXME should be check_urgent_gc */
+ if (force_major_slice) caml_minor_collection ();
+ /* FIXME should be [caml_check_urgent_gc] */
/* If a signal arrives between the following two instructions,
it will be lost. To do: use atomic swap or atomic read-and-clear
for processors that support it? */
@@ -78,8 +79,8 @@ void execute_signal(int signal_number, int in_signal_handler)
sigaddset(&sigs, signal_number);
sigprocmask(SIG_BLOCK, &sigs, &sigs);
#endif
- res = callback_exn(Field(signal_handlers, signal_number),
- Val_int(rev_convert_signal_number(signal_number)));
+ res = caml_callback_exn(Field(signal_handlers, signal_number),
+ Val_int(rev_convert_signal_number(signal_number)));
#ifdef POSIX_SIGNALS
if (! in_signal_handler) {
/* Restore the original signal mask */
@@ -289,7 +290,7 @@ CAMLprim value install_signal_handler(value signal_number, value action)
signal_handlers = caml_alloc(NSIG, 0);
register_global_root(&signal_handlers);
}
- modify(&Field(signal_handlers, sig), Field(action, 0));
+ caml_modify(&Field(signal_handlers, sig), Field(action, 0));
}
CAMLreturn (res);
}