From: Juho Snellman Date: Wed, 19 Jul 2006 21:46:51 +0000 (+0000) Subject: 0.9.14.27: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=3072c9a37365341eda5611a97760b63aeb4e6003;p=sbcl.git 0.9.14.27: The new x86 ALLOCATE-CONS-* assembly routines had a RET inside a pseudo-atomic section, which resulted in pending interrupts getting lost. Caused for example out-of-memory crashes on threads.impure.lisp. --- diff --git a/src/assembly/x86/alloc.lisp b/src/assembly/x86/alloc.lisp index a0bac4f..b300396 100644 --- a/src/assembly/x86/alloc.lisp +++ b/src/assembly/x86/alloc.lisp @@ -72,8 +72,8 @@ ((:temp ,arg-tn descriptor-reg ,(intern (format nil "~A-OFFSET" arg-tn)))) (pseudo-atomic (allocation ,arg-tn (pad-data-block ,(intern (format nil "~A-SIZE" obj)))) - (inst lea ,arg-tn (make-ea :byte :base ,arg-tn :disp ,lowtag)) - (inst ret)))) + (inst lea ,arg-tn (make-ea :byte :base ,arg-tn :disp ,lowtag))) + (inst ret))) #+sb-assembling (macrolet ((frob-cons-routines () diff --git a/version.lisp-expr b/version.lisp-expr index 703c542..3cbdf95 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.14.26" +"0.9.14.27"