Reduce the numbers of threads in test ATOMIC-UPDATE on 32bit platforms
authorDavid Lichteblau <david@lichteblau.com>
Tue, 18 Sep 2012 15:11:14 +0000 (17:11 +0200)
committerDavid Lichteblau <david@lichteblau.com>
Tue, 18 Sep 2012 15:44:00 +0000 (17:44 +0200)
This test creates 1000 threads in a row -- too many for some 32bit
platforms due to lack of memory or fragmentation.

tests/threads.pure.lisp

index 03da75b..2db34c2 100644 (file)
 
 (with-test (:name atomic-update
             :skipped-on '(not :sb-thread))
-  (let ((x (cons :count 0)))
+  (let ((x (cons :count 0))
+        (nthreads (ecase sb-vm:n-word-bits (32 100) (64 1000))))
     (mapc #'sb-thread:join-thread
           (loop repeat 1000
                 collect (sb-thread:make-thread
                          (lambda ()
-                           (loop repeat 1000
+                           (loop repeat nthreads
                                  do (atomic-update (cdr x) #'1+)
                                     (sleep 0.00001))))))
-    (assert (equal x '(:count . 1000000)))))
+    (assert (equal x `(:count ,@(* 1000 nthreads))))))
 
 (with-test (:name mutex-owner)
   ;; Make sure basics are sane on unithreaded ports as well