Use without-interruption and more locking(!) in gcfinal.scm.
authorMatt Birkholz <puck@birchwood-abbey.net>
Wed, 19 Aug 2015 01:00:50 +0000 (18:00 -0700)
committerMatt Birkholz <puck@birchwood-abbey.net>
Wed, 19 Aug 2015 01:00:50 +0000 (18:00 -0700)
commit9db45d678c26326a415366ab60e545c8d4f43d2f
treef0bfacb6a3c46c62d90c8753ccc930d2871500aa
parent45eb8e0569effae43ec89625ad6fab552507ed6b
Use without-interruption and more locking(!) in gcfinal.scm.

Prepare the GC daemon to run concurrently with other threads; lock each
finalizer while it is cleaned in run-gc-finalizers.

Add without-interruption to add-to-, remove-from-, remove-all-from-,
with--lock, and make-gc-finalized-object, NOT to search- or -elements.
Reset-gc-finalizers also lost its without-interrupts, but it is an
after-restore event already executed without-interrupts.
src/runtime/gcfinal.scm