Update of /cvsroot/sbcl/sbcl/tests
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv23806/tests
184.108.40.206: Remove bogus test (:CONDITION-VARIABLE :WAIT-MULTIPLE).
* The test was introduced in 220.127.116.11 to test against closely
running waiters to cause spurious wakeups to each other.
However, as has been shown in the thread "lost wakeup in
condition-wait / condition-notify", feb 2010 on sbcl-devel, that
optimization resulted in a possible lost wakeup case.
18.104.22.168 contained a fix against that lost wakeup case but
introduced back the pessimal behaviour of waiters interfering with
So the test was rendered bogus.
* While I'm at it, also update NEWS to tag an entry with its LP#.
RCS file: /cvsroot/sbcl/sbcl/tests/threads.impure.lisp,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -d -r1.77 -r1.78
--- threads.impure.lisp 3 Apr 2010 16:46:09 -0000 1.77
+++ threads.impure.lisp 7 Apr 2010 07:06:48 -0000 1.78
@@ -1019,31 +1019,6 @@
| (mp:make-process #'roomy)))
-;;; KLUDGE: No deadlines while waiting on lutex-based condition variables. This test
-;;; would just hang.
-(with-test (:name (:condition-variable :wait-multiple))
- (loop repeat 40 do
- (let ((waitqueue (sb-thread:make-waitqueue :name "Q"))
- (mutex (sb-thread:make-mutex :name "M"))
- (failedp nil))
- (format t ".")
- (finish-output t)
- (let ((threads (loop repeat 200
- (lambda ()
- (sb-sys:with-deadline (:seconds 0.01)
- (sb-thread:with-mutex (mutex)
- (sb-thread:condition-wait waitqueue
- (setq failedp t)))
- (sb-sys:deadline-timeout (c)
- (declare (ignore c)))))))))
- (mapc #'sb-thread:join-thread threads)
- (assert (not failedp))))))
(with-test (:name (:condition-variable :notify-multiple))
(flet ((tester (notify-fun)
(let ((queue (make-waitqueue :name "queue"))