0.9.1.29:
authorGabor Melis <mega@hotpop.com>
Wed, 8 Jun 2005 08:49:49 +0000 (08:49 +0000)
committerGabor Melis <mega@hotpop.com>
Wed, 8 Jun 2005 08:49:49 +0000 (08:49 +0000)
commit7cca1cabd213d38218a40e973b06ca11c8546396
tree8b3a98ea0f91dc4fd10a54d3bf1409abc1d6e7ee
parent5bc505c743d3f89de71b319479c2bbb71b0256ae
0.9.1.29:
        A number of signal handling cleanup/fixes:
        * fix gencgc/maybe_defer_handler race (thanks to Thiemo)
        * interrupt_maybe_gc (on cheneygc platforms): check for already
          pending handler before calling maybe_defer_handler in order
          not to lose interrupts
        * interrupt_handle_pending: check for the pending handler being
          null
        * run_deferred_handler: set the pending handler to null, before
          calling it to guard against the handler enabling interrupts ...
        * more defensiveness: enforce invariants: checks for signal masks,
          interrupts
        * refactoring: undoably_install_low_level_interrupt_handler wraps
          blockable handlers in low_level_maybe_now_maybe_later
        * don't unblock signals unconditionally in interrupt_maybe_gc_int just
          restore the sigmask from the interrupted context (kludge removed)
        * removed misguided sigprocmask calls from mips, hppa and sparc
          sig{trap,ill} handlers
        * removed non-x86 version of handle_breakpoint (interrupts are enabled
          in now common handle_breakpoint)
        * fixed arrange_return_to_lisp_function/post_signal_tramp to save and
          restore eflags (interrupt-threads seems to work)
18 files changed:
NEWS
src/code/signal.lisp
src/code/target-thread.lisp
src/compiler/x86/macros.lisp
src/runtime/alloc.c
src/runtime/breakpoint.c
src/runtime/gencgc.c
src/runtime/hppa-arch.c
src/runtime/interrupt.c
src/runtime/interrupt.h
src/runtime/mips-arch.c
src/runtime/sparc-arch.c
src/runtime/x86-64-arch.c
src/runtime/x86-64-assem.S
src/runtime/x86-arch.c
src/runtime/x86-assem.S
tests/threads.impure.lisp
version.lisp-expr