X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Fgc.lisp;h=04562f088ca083015583cd19a13cb5e919768e34;hb=230707c1899c1c008f7ce2ad97e2fd04849f7443;hp=cf5451eec0d15b37276dbc7f68c734bc1d94830b;hpb=9b458bf995314b7edd1cc050bd11ede83ada4328;p=sbcl.git diff --git a/src/code/gc.lisp b/src/code/gc.lisp index cf5451e..04562f0 100644 --- a/src/code/gc.lisp +++ b/src/code/gc.lisp @@ -120,7 +120,9 @@ (defun gc-reinit () (gc-on) (gc) - (setf *n-bytes-freed-or-purified* 0)) + (setf *n-bytes-freed-or-purified* 0 + ;; See comment in interr.lisp + *heap-exhausted-error-condition* (make-condition 'heap-exhausted-error))) (declaim (ftype (function () unsigned-byte) get-bytes-consed)) (defun get-bytes-consed () @@ -211,6 +213,9 @@ environment these hooks may run in any thread.") ;; Outside the mutex, these may cause another GC. FIXME: it can ;; potentially exceed maximum interrupt nesting by triggering ;; GCs. + ;; + ;; Can that be avoided by having the finalizers and hooks run only + ;; from the outermost SUB-GC? (run-pending-finalizers) (dolist (hook *after-gc-hooks*) (handler-case