0.8.4.1
authorDaniel Barlow <dan@telent.net>
Thu, 2 Oct 2003 23:13:08 +0000 (23:13 +0000)
committerDaniel Barlow <dan@telent.net>
Thu, 2 Oct 2003 23:13:08 +0000 (23:13 +0000)
commit2675adcb29d689ee6d270f52658af17f2deeaf77
tree17f49aad78e3bf6141143446eb4cc0a5e6b0afa3
parent224466fab9dc4e8b3faf13a121f827f198811bf6
0.8.4.1
Merge most of atropos-branch: miscellaneous (mostly threading)
fixes that were probably a little too risky for late in 0.8.4
development.

        doc/ - fix up some of the sgml errors that sourceforge keeps
        mailing me about

        New function release-spinlock that only changes the lock value
        if we owned the spinlock, so good for unwind-protect cleanups
        when lock acquisition failed

        get-spinlock release-spinlock current-thread-id could all win
        from being inlinable

        Use a RT signal (SIG_DEQUEUE) for resuming threads that were
        on queues, instead of having SIGCONT do both this and the
        resume-after-gc task.

        Scattered commentary describing the state of the signal mask
        in various interesting places

        In gencgc alloc, only install a deferred handler for GC if
        there was no previous handler for anything else.  This fixes
        a longstanding bug where the GC thread would eat all cpu while
        waiting indefinitely for othr threads to stop.

        Add SIG_STOP_FOR_GC to the blockable list

        interrupt_maybe_gc_int: enable signals before calling SUB-GC,
        or the locking that sub-gc does is going to interact badly.

        Minor rearrangement to parent thread to stop it having to wake
        up on every GC

        Add grovel_headers line for SIG-DEQUEUE.  OAOOM alert...
15 files changed:
doc/beyond-ansi.sgml
src/code/gc.lisp
src/code/target-thread.lisp
src/runtime/alloc.c
src/runtime/breakpoint.c
src/runtime/cheneygc.c
src/runtime/gencgc.c
src/runtime/interrupt.c
src/runtime/linux-os.c
src/runtime/linux-os.h
src/runtime/runtime.c
src/runtime/thread.c
tests/threads.impure.lisp
tools-for-build/grovel_headers.c
version.lisp-expr