0.8.21.23: rewritten SUB-GC & finalization
authorNikodemus Siivola <nikodemus@random-state.net>
Fri, 8 Apr 2005 12:30:13 +0000 (12:30 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Fri, 8 Apr 2005 12:30:13 +0000 (12:30 +0000)
commitfd526bc66c53616a2e757323cbda0271c72b3d54
tree4f5a6e81a8de5b8c2805f72771ef9d53da6f9dcd
parent8987be18e94b9ef8ba393f05d1157587528810b3
0.8.21.23: rewritten SUB-GC & finalization
  * last vestiges of before GC hooks have been removed.
  * after GC hooks are now left for user-code.
  * call UNSAFE-CLEAR-ROOTS before GC proper as the moral replacement
     of old before GC hooks for internal use only: on unithread SBCL
     scrub the stack and clear ctype-of cache, on threaded just scrub the
     stack.
  * finalizers and after GC hooks moved outside the GC proper, with
     interrupts enabled and all threads[1] running; it is now safe to
     allocate in them as re-entry to GC is possible.
  * put a lock on the global finalizers list, as per Gabor Mellis'
     patch. Gratuitiously change the name of the selfsame global variable
     to flush out anyone diddling with it.
  * tighten the finalizer spec with a note that they may run in any
     thread.
  * add a stress-test for finalizers.

 [1. Not actually tested on threaded SBCL.]
NEWS
package-data-list.lisp-expr
src/code/cold-init.lisp
src/code/cross-misc.lisp
src/code/final.lisp
src/code/gc.lisp
src/code/target-type.lisp
src/code/toplevel.lisp
tests/finalize.test.sh [new file with mode: 0644]
version.lisp-expr