Skip to content
Snippets Groups Projects
Forked from cmucl / cmucl
Source project has a limited visibility.
  • dtc's avatar
    c308db4d
    Ignore the foreign_function_call_active flag on the x86 port. It was · c308db4d
    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.
    c308db4d
    History
    Ignore the foreign_function_call_active flag on the x86 port. It was
    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.