Commit [93108e] Maximize Restore History

0.8.3.95.atropos.1 ; cutting threads

There is getting to be rather a lot of sensible but
not-now-while-we're-releasing code in my thread/gc fix.
So here it is on a branch, hopefully minus the slightly
more evil debugging crud

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

Inline arch_os_get_current_thread (note, thread.h is not a
sensible place for an x86linuxonly operation, rearrange this
before committing to HEAD)

Add grovel_headers lines for our RT signals. OAOOM alert...
(Actually, of these three we only need SIG-DEQUEUE)

Daniel Barlow Daniel Barlow 2003-09-30

changed doc/beyond-ansi.sgml
changed src/code/target-thread.lisp
changed src/runtime/alloc.c
changed src/runtime/breakpoint.c
changed src/runtime/cheneygc.c
changed src/runtime/gencgc.c
changed src/runtime/interrupt.c
changed src/runtime/linux-os.c
changed src/runtime/linux-os.h
changed src/runtime/runtime.c
changed src/runtime/thread.c
changed src/runtime/thread.h
changed src/runtime/x86-linux-os.c
changed src/runtime/x86-linux-os.h
changed tools-for-build/grovel_headers.c
changed version.lisp-expr
doc/beyond-ansi.sgml Diff Switch to side-by-side view
Loading...
src/code/target-thread.lisp Diff Switch to side-by-side view
Loading...
src/runtime/alloc.c Diff Switch to side-by-side view
Loading...
src/runtime/breakpoint.c Diff Switch to side-by-side view
Loading...
src/runtime/cheneygc.c Diff Switch to side-by-side view
Loading...
src/runtime/gencgc.c Diff Switch to side-by-side view
Loading...
src/runtime/interrupt.c Diff Switch to side-by-side view
Loading...
src/runtime/linux-os.c Diff Switch to side-by-side view
Loading...
src/runtime/linux-os.h Diff Switch to side-by-side view
Loading...
src/runtime/runtime.c Diff Switch to side-by-side view
Loading...
src/runtime/thread.c Diff Switch to side-by-side view
Loading...
src/runtime/thread.h Diff Switch to side-by-side view
Loading...
src/runtime/x86-linux-os.c Diff Switch to side-by-side view
Loading...
src/runtime/x86-linux-os.h Diff Switch to side-by-side view
Loading...
tools-for-build/grovel_headers.c Diff Switch to side-by-side view
Loading...
version.lisp-expr Diff Switch to side-by-side view
Loading...