From: Nikodemus S. <de...@us...> - 2007-06-08 20:38:26
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv29933/tests Modified Files: clos-cache.impure.lisp Log Message: 1.0.6.38: thread and interrupt safe ADD/REMOVE-METHOD * ADD/REMOVE-METHOD need to grab the GF lock and disable interrupts. * ADD/REMOVE-DIRECT-METHOD, and SPECIALIZER-DIRECT-GENERIC-FUNCTIONS need a lock as well, but instead of adding per-specializer lock just use one global one: contention should be minimal here. * INTERN-EQL-SPECIALIZER needs a lock. * Fix non-threaded build. * Delete dead NAME variables from ADD/REMOVE-METHOD. * Tests. Index: clos-cache.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/clos-cache.impure.lisp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- clos-cache.impure.lisp 8 Jun 2007 12:47:50 -0000 1.1 +++ clos-cache.impure.lisp 8 Jun 2007 20:38:22 -0000 1.2 @@ -64,9 +64,9 @@ (write-line string))))) (defun test-loop () - (note "/~S waiting for permission to run" sb-thread:*current-thread*) + (note "/~S waiting for permission to run" sb-thread:*current-thread*) (loop until *run-cache-test*) - (note "/~S joining the tundering herd" sb-thread:*current-thread*) + (note "/~S joining the thundering herd" sb-thread:*current-thread*) (handler-case (loop repeat 1024 do (test-cache)) (error (e) @@ -82,8 +82,10 @@ (mapcar #'sb-thread:join-thread threads)) #-sb-thread -(loop repeat 4 - do (test-loop)) +(progn + (setf *run-cache-test* t) + (loop repeat 4 + do (test-loop))) ;;; Check that the test tests what it was supposed to test: the cache. (assert (sb-pcl::cache-p (sb-pcl::gf-dfun-cache #'cache-test))) |