Skip to content
Browse files

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.
  • Loading branch information...
1 parent c64c82c commit b14aefb22fd710673b1a1005add3c0425713d2a0 @stassats stassats committed Aug 15, 2012
Showing with 9 additions and 5 deletions.
  1. +9 −5 tests/packages.impure.lisp
View
14 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)))

0 comments on commit b14aefb

Please sign in to comment.
Something went wrong with that request. Please try again.