From b14aefb22fd710673b1a1005add3c0425713d2a0 Mon Sep 17 00:00:00 2001 From: Stas Boukarev Date: Wed, 15 Aug 2012 22:07:42 +0400 Subject: [PATCH] Fix test-case for bug-511072 in packages.impure.lisp It was creating an error in an additional thread and didn't handle it properly, which caused SBCL to bail out. Reported by Mirko Vukovic. --- tests/packages.impure.lisp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/packages.impure.lisp b/tests/packages.impure.lisp index 96431a5..82ef917 100644 --- a/tests/packages.impure.lisp +++ b/tests/packages.impure.lisp @@ -292,11 +292,15 @@ if a restart was invoked." ;;; MAKE-PACKAGE error in another thread blocking FIND-PACKAGE & FIND-SYMBOL (with-test (:name :bug-511072 :skipped-on '(not :sb-thread)) (let* ((p (make-package :bug-511072)) - (sem (sb-thread:make-semaphore)) + (sem1 (sb-thread:make-semaphore)) + (sem2 (sb-thread:make-semaphore)) (t2 (sb-thread:make-thread (lambda () (handler-bind ((error (lambda (c) - (sb-thread:signal-semaphore sem) - (signal c)))) + (sb-thread:signal-semaphore sem1) + (sb-thread:wait-on-semaphore sem2) + (abort c)))) (make-package :bug-511072)))))) - (sb-thread:wait-on-semaphore sem) - (assert (eq 'cons (read-from-string "CL:CONS"))))) + (sb-thread:wait-on-semaphore sem1) + (with-timeout 10 + (assert (eq 'cons (read-from-string "CL:CONS")))) + (sb-thread:signal-semaphore sem2))) -- 1.7.10.4