Add SMP GC primitives and use them (with 1 processor).
authorMatt Birkholz <puck@birchwood-abbey.net>
Tue, 18 Aug 2015 07:11:23 +0000 (00:11 -0700)
committerMatt Birkholz <puck@birchwood-abbey.net>
Thu, 26 Nov 2015 08:09:44 +0000 (01:09 -0700)
commit5947e1117b3037369aa40b7857d0e45487b6b174
tree386cf64efc8283fd70143cc20a6389cf7b0639fc
parent02e1ef7ffcafc588bd1ef301fda7d637947057ff
Add SMP GC primitives and use them (with 1 processor).

Add SMP-GC-LOCK, SMP-GC-UNLOCK and SMP-GC-WAIT.  Add a stub for the
remaining unimplemented SMP primitive: SMP-LOCK-OBARRAY.  Make
SMP-COUNT return 1 so that the runtime system sets enable-smp? and
calls the new primitives.

Drop the threads_mutex (but keep threads_processor set) in SMP-GC-LOCK
so that processors waiting to enter the thread system (in
SMP-LOCK-THREADS) will wake, enter the GC-WAIT state, then try again.
src/microcode/fasdump.c
src/microcode/intern.c
src/microcode/memmag.c
src/microcode/ossmp.h
src/microcode/prossmp.c
src/microcode/purify.c
src/microcode/uxsig.c