X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fgc.lisp;h=06d38a092d2b03ca50dba77528684be19e2a29fe;hb=95591ed483dbb8c0846c129953acac1554f28809;hp=32aa109155e77fd843de1ce52478f5974d7a2627;hpb=4f9b5cd4268d3e28ac54748c4871e07f38acfd4c;p=sbcl.git diff --git a/src/code/gc.lisp b/src/code/gc.lisp index 32aa109..06d38a0 100644 --- a/src/code/gc.lisp +++ b/src/code/gc.lisp @@ -13,9 +13,6 @@ ;;;; DYNAMIC-USAGE and friends -(declaim (special sb!vm:*read-only-space-free-pointer* - sb!vm:*static-space-free-pointer*)) - (eval-when (:compile-toplevel :execute) (sb!xc:defmacro def-c-var-fun (lisp-fun c-var-name) `(defun ,lisp-fun () @@ -215,7 +212,9 @@ run in any thread.") ;; Now, if GET-MUTEX did not cons, that would be enough. ;; Because it does, we need the :IN-PROGRESS bit above to ;; tell the runtime not to trigger gcs. - (let ((sb!impl::*in-without-gcing* t)) + (let ((sb!impl::*in-without-gcing* t) + (sb!impl::*deadline* nil) + (sb!impl::*deadline-seconds* nil)) (sb!thread:with-mutex (*already-in-gc*) (let ((*gc-inhibit* t)) (let ((old-usage (dynamic-usage)) @@ -286,6 +285,8 @@ run in any thread.") (when (sub-gc :gen (if full 6 gen)) (post-gc))) +(define-alien-routine scrub-control-stack sb!alien:void) + (defun unsafe-clear-roots () ;; KLUDGE: Do things in an attempt to get rid of extra roots. Unsafe ;; as having these cons more then we have space left leads to huge