Forked from
cmucl / cmucl
Source project has a limited visibility.
-
dtc authored
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.
dtc authoredof 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.