From 3f21f46963f0fecd23d163f1e2d006b169ccf935 Mon Sep 17 00:00:00 2001 From: Gabor Melis Date: Mon, 22 Aug 2005 10:19:44 +0000 Subject: [PATCH] 0.9.3.75: * set *CURRENT-THREAD* to NIL on thread exit else it cannot be garbage collected --- NEWS | 1 + src/code/target-thread.lisp | 3 ++- version.lisp-expr | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 3f57aca..f045606 100644 --- a/NEWS +++ b/NEWS @@ -48,6 +48,7 @@ changes in sbcl-0.9.4 relative to sbcl-0.9.3: ** bug fix: one less memory fault in INTERRUPT-THREAD, again ** bug fix: gc and INTERRUPT-THREAD don't hang when the RT signal queue is full + ** bug fix: finished threads are gc'ed properly * fixed some bugs revealed by Paul Dietz' test suite: ** CALL-NEXT-METHOD signals an error (in safe code) when the call has arguments with a different set of applicable methods from diff --git a/src/code/target-thread.lisp b/src/code/target-thread.lisp index f4e9fc6..639bd2d 100644 --- a/src/code/target-thread.lisp +++ b/src/code/target-thread.lisp @@ -498,9 +498,10 @@ returns the thread exits." ;; we're going down, can't handle ;; interrupts sanely anymore (block-deferrable-signals-and-inhibit-gc))))) - ;; and remove what can be the last reference to the + ;; and remove what can be the last references to the ;; thread object (handle-thread-exit thread) + (setq *current-thread* nil) 0)) (values)))))) (when (sb!sys:sap= thread-sap (sb!sys:int-sap 0)) diff --git a/version.lisp-expr b/version.lisp-expr index 10c82ff..94a5938 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.9.3.74" +"0.9.3.75" -- 1.7.10.4