1.0.41.19: runtime: Fix pseudo-atomic on non-x86oid gencgc.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Sat, 7 Aug 2010 13:45:56 +0000 (13:45 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Sat, 7 Aug 2010 13:45:56 +0000 (13:45 +0000)
commit9a4436ba9bd089de52bc71391466119a82828a37
tree28a42c48dad2991a608ec7a831df975288c26f78
parentc808a8c105050a5384c94418a8c80fafdfdc78c4
1.0.41.19: runtime: Fix pseudo-atomic on non-x86oid gencgc.

  * Pseudo-atomic is per-thread state, add it to struct thread.

  * Pass the correct pointer for accessing p-a in dynbind.c.

  * In {undo_,}fake_foreign_function_call(), stash reg_ALLOC as
pseudo-atomic-bits on threaded targets.

  * In pseudo-atomic.h, the ppc gencgc code is really non-x86oid
gencgc code.

  * Also in pseudo-atomic.h, update the non-x86oid gencgc code
to do the right thing with threaded pseudo-atomic-bits.

  * Due to the way dynamic binding works on threaded targets, it
is now a requirement that the arch_* pseudo_atomic functions call
the generic versions if foreign_function_call_active_p() is true
on threaded targets (in short, C code needs to be able to enter
pseudo-atomic, not just lisp code).
src/compiler/generic/objdef.lisp
src/runtime/dynbind.c
src/runtime/interrupt.c
src/runtime/pseudo-atomic.h
src/runtime/thread.c
version.lisp-expr