Skip to content
Snippets Groups Projects
Commit bfac8ad7 authored by Raymond Toy's avatar Raymond Toy
Browse files

Fix bitrot in interrupt_maybe_gc.

parent 3be4fc21
No related branches found
No related tags found
No related merge requests found
...@@ -372,26 +372,28 @@ gc_trigger_hit(HANDLER_ARGS) ...@@ -372,26 +372,28 @@ gc_trigger_hit(HANDLER_ARGS)
boolean boolean
interrupt_maybe_gc(HANDLER_ARGS) interrupt_maybe_gc(HANDLER_ARGS)
{ {
ucontext_t *ucontext = (ucontext_t *) context;
if (!foreign_function_call_active if (!foreign_function_call_active
#ifndef INTERNAL_GC_TRIGGER #ifndef INTERNAL_GC_TRIGGER
&& gc_trigger_hit(signal, code, context) && gc_trigger_hit(signal, code, ucontext)
#endif #endif
) { ) {
#ifndef INTERNAL_GC_TRIGGER #ifndef INTERNAL_GC_TRIGGER
clear_auto_gc_trigger(); clear_auto_gc_trigger();
#endif #endif
if (arch_pseudo_atomic_atomic(context)) { if (arch_pseudo_atomic_atomic(ucontext)) {
maybe_gc_pending = TRUE; maybe_gc_pending = TRUE;
if (pending_signal == 0) { if (pending_signal == 0) {
copy_sigmask(&pending_mask, &context->uc_sigmask); copy_sigmask(&pending_mask, &ucontext->uc_sigmask);
FILLBLOCKSET(&context->uc_sigmask); FILLBLOCKSET(&ucontext->uc_sigmask);
} }
arch_set_pseudo_atomic_interrupted(context); arch_set_pseudo_atomic_interrupted(ucontext);
} else { } else {
fake_foreign_function_call(context); fake_foreign_function_call(ucontext);
funcall0(SymbolFunction(MAYBE_GC)); funcall0(SymbolFunction(MAYBE_GC));
undo_fake_foreign_function_call(context); undo_fake_foreign_function_call(ucontext);
} }
return TRUE; return TRUE;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment