Skip to content
Snippets Groups Projects
Commit c308db4d authored by dtc's avatar dtc
Browse files

Ignore the foreign_function_call_active flag on the x86 port. It was

of no utility and wasn't even being maintained thoroughly. Can now use
pseudo atomic in C code. All interrupt contexts are saved, even those
that occur when running foreign C code; this may be necessary for
reliable stack parsing on some operating systems, e.g. Linux.

When the pending interrupt from a GC trigger is processed by
interrupt_handle_pending, any other accumulated pending interrupt is
also processed even if *interrupts-enabled* is false, breaking the
behaviour of the *interrupts-enabled* flag.  The best way around this
for the x86 port is to call maybe-gc directly from the allocation
routines; remove the recently introduced function set_maybe_gc_pending
which also had other problems. Note this problem will likely occur on
the other ports.
parent 74c53b9c
No related branches found
No related tags found
Loading
Loading
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