X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fgc.lisp;h=61c351c8dbbcfbe677033ad797b24164e12706d3;hb=f07f32b901e342331848c83e26cfbe2f50f4e949;hp=b477d981c36b5e18ffefacfaca9ad6b5e7f18a7a;hpb=219cc40793f9c82fb943b29a1846f898f4f9de1e;p=sbcl.git diff --git a/src/code/gc.lisp b/src/code/gc.lisp index b477d98..61c351c 100644 --- a/src/code/gc.lisp +++ b/src/code/gc.lisp @@ -164,16 +164,17 @@ run in any thread.") (old %gc-logfile)) (setf %gc-logfile new) (when old - (sb!alien:free-alien old)))) + (sb!alien:free-alien old)) + pathname)) (defun gc-logfile () #!+sb-doc "Return the pathname used to log garbage collections. Can be SETF. Default is NIL, meaning collections are not logged. If non-null, the designated file is opened before and after each collection, and generation statistics are appended to it." - (let ((val %gc-logfile)) + (let ((val (cast %gc-logfile c-string))) (when val - (native-pathname (cast val c-string))))) + (native-pathname val)))) (declaim (inline dynamic-space-size)) (defun dynamic-space-size () "Size of the dynamic space in bytes." @@ -254,6 +255,8 @@ statistics are appended to it." ;; turn is a type-error. (when (plusp run-time) (incf *gc-run-time* run-time)))) + #!+sb-safepoint + (setf *stop-for-gc-pending* nil) (setf *gc-pending* nil new-usage (dynamic-usage)) #!+sb-thread @@ -326,7 +329,7 @@ which may in turn trigger a collection of one or more older generations as well. If FULL is true, all generations are collected. If GEN is provided, it can be used to specify the oldest generation guaranteed to be collected." - (when (sub-gc :gen (if full 6 gen)) + (when (sub-gc :gen (if full sb!vm:+pseudo-static-generation+ gen)) (post-gc))) (define-alien-routine scrub-control-stack sb!alien:void) @@ -435,8 +438,8 @@ Note: currently changes to this value are lost when saving core." "Number of bytes that can be allocated to GENERATION before that generation is considered for garbage collection. This value is meaningless for generation 0 (the nursery): see BYTES-CONSED-BETWEEN-GCS instead. Default is -5% of the dynamic space size. Can be assigned to using SETF. Available on -GENCGC platforms only. +5% of the dynamic space size divided by the number of non-nursery generations. +Can be assigned to using SETF. Available on GENCGC platforms only. Experimental: interface subject to change." t)