(with-test (:name (:timer :relative)
:fails-on '(and :sparc :linux)
- :skipped-on :win32)
+ :skipped-on :win32)
(let* ((has-run-p nil)
(timer (make-timer (lambda () (setq has-run-p t))
:name "simple timer")))
(with-test (:name (:timer :absolute)
:fails-on '(and :sparc :linux)
- :skipped-on :win32)
+ :skipped-on :win32)
(let* ((has-run-p nil)
(timer (make-timer (lambda () (setq has-run-p t))
:name "simple timer")))
(assert (zerop (length (sb-impl::%pqueue-contents sb-impl::*schedule*))))))
(with-test (:name (:timer :other-thread) :skipped-on '(not :sb-thread))
- (let* ((thread (sb-thread:make-thread (lambda () (sleep 2))))
+ (let* ((thread (make-kill-thread (lambda () (sleep 2))))
(timer (make-timer (lambda ()
(assert (eq thread sb-thread:*current-thread*)))
:thread thread)))
(with-test (:name (:timer :repeat-and-unschedule)
:fails-on '(and :sparc :linux)
- :skipped-on :win32)
+ :skipped-on :win32)
(let* ((run-count 0)
timer)
(setq timer
(defun wait-for-threads (threads)
(loop while (some #'sb-thread:thread-alive-p threads) do (sleep 0.01)))
-(with-test (:name (:with-timeout :many-at-the-same-time) :skipped-on '(not :sb-thread))
+(with-test (:name (:with-timeout :many-at-the-same-time)
+ :skipped-on '(not :sb-thread))
(let ((ok t))
(let ((threads (loop repeat 10 collect
(sb-thread:make-thread
(assert ok))))
(with-test (:name (:with-timeout :dead-thread) :skipped-on '(not :sb-thread))
- (sb-thread:make-thread
+ (make-join-thread
(lambda ()
(let ((timer (make-timer (lambda ()))))
(schedule-timer timer 3)
;;; Used to hang occasionally at least on x86. Two bugs caused it:
;;; running out of stack (due to repeating timers being rescheduled
;;; before they ran) and dying threads were open interrupts.
-(with-test (:name (:timer :parallel-unschedule) :fails-on :ppc :skipped-on '(not :sb-thread) :broken-on '(or :darwin :ppc))
+(with-test (:name (:timer :parallel-unschedule)
+ :skipped-on '(not :sb-thread)
+ :broken-on ':ppc)
(let ((timer (sb-ext:make-timer (lambda () 42) :name "parallel schedulers"))
(other nil))
(flet ((flop ()
#-sb-thread
(loop repeat 10 do (test))))
-(with-test (:name (:timer :threaded-stress) :skipped-on '(not :sb-thread))
+(with-test (:name (:timer :threaded-stress)
+ :skipped-on '(not :sb-thread)
+ :fails-on :win32)
+ #+win32
+ (error "fixme")
(let ((barrier (sb-thread:make-semaphore))
(goal 100))
(flet ((wait-for-goal ()