Just Launched: You can now import projects and releases from Google Code onto SourceForge
We are excited to release new functionality to enable a 1-click import from Google Code onto the Allura platform on SourceForge. You can import tickets, wikis, source, releases, and more with a few simple steps. Read More
Update of /cvsroot/sbcl/sbcl/tests
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv23806/tests
188.8.131.52: Remove bogus test (:CONDITION-VARIABLE :WAIT-MULTIPLE).
* The test was introduced in 184.108.40.206 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.
220.127.116.11 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"))