0.9.14.27:
authorJuho Snellman <jsnell@iki.fi>
Wed, 19 Jul 2006 21:46:51 +0000 (21:46 +0000)
committerJuho Snellman <jsnell@iki.fi>
Wed, 19 Jul 2006 21:46:51 +0000 (21:46 +0000)
        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.

src/assembly/x86/alloc.lisp
version.lisp-expr

index a0bac4f..b300396 100644 (file)
@@ -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 ()
index 703c542..3cbdf95 100644 (file)
@@ -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"