\f
;;;; 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 ()
;; 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))
(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