1.0.41.11: gc: Interrupt contexts and stacks should be scavenged per-thread.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Fri, 6 Aug 2010 18:47:50 +0000 (18:47 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Fri, 6 Aug 2010 18:47:50 +0000 (18:47 +0000)
commit568725aaf7d2d3dae486cd85210eb514c856fdb7
tree55940c25823976ce12baec045d6c8d2582983797
parentea50d9ffd5315389ff378e4580724b0c2a939c85
1.0.41.11: gc: Interrupt contexts and stacks should be scavenged per-thread.

  * Pass an explicit thread argument to scavenge_interrupt_contexts()
instead of having it call arch_os_get_current_thread(), saving the
extra call on cheneygc and allowing multiple threads on gencgc.

  * On gencgc, the same applies to scavenge_control_stack().

  * On gencgc, don't scrub the control stack when scavenging, wait
until after the scavenging is done (it's done by the stop-for-gc
handler on other threads).

  * On gencgc, scavenge interrupt contexts and control stacks for
all threads, not just the current thread.

  * On a minor note, the code for scavenging interrupt contexts is
largely unchanged between cheneygc and gencgc.  Perhaps it should
be re-unified in gc-common.c?
src/runtime/cheneygc.c
src/runtime/gc-internal.h
src/runtime/gencgc.c
version.lisp-expr