projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.34.12: slightly better code generation for x86-64 float conversions
[sbcl.git]
/
tests
/
threads.impure.lisp
diff --git
a/tests/threads.impure.lisp
b/tests/threads.impure.lisp
index
11b39cf
..
3eb0fe0
100644
(file)
--- a/
tests/threads.impure.lisp
+++ b/
tests/threads.impure.lisp
@@
-456,7
+456,8
@@
(format t "~&interrupt test done~%")
(format t "~&interrupt test done~%")
-(defparameter *interrupt-count* 0)
+(defstruct counter (n 0 :type sb-vm:word))
+(defvar *interrupt-counter* (make-counter))
(declaim (notinline check-interrupt-count))
(defun check-interrupt-count (i)
(declaim (notinline check-interrupt-count))
(defun check-interrupt-count (i)
@@
-471,16
+472,16
@@
(princ cond)
(sb-debug:backtrace
most-positive-fixnum))))
(princ cond)
(sb-debug:backtrace
most-positive-fixnum))))
- (loop (check-interrupt-count *interrupt-count*)))))))
+ (loop (check-interrupt-count (counter-n *interrupt-counter*))))))))
(let ((func (lambda ()
(princ ".")
(force-output)
(let ((func (lambda ()
(princ ".")
(force-output)
- (sb-impl::atomic-incf/symbol *interrupt-count*))))
- (setq *interrupt-count* 0)
+ (sb-ext:atomic-incf (counter-n *interrupt-counter*)))))
+ (setf (counter-n *interrupt-counter*) 0)
(dotimes (i 100)
(sleep (random 0.1d0))
(interrupt-thread c func))
(dotimes (i 100)
(sleep (random 0.1d0))
(interrupt-thread c func))
- (loop until (= *interrupt-count* 100) do (sleep 0.1))
+ (loop until (= (counter-n *interrupt-counter*) 100) do (sleep 0.1))
(terminate-thread c)
(wait-for-threads (list c))))
(terminate-thread c)
(wait-for-threads (list c))))