(make-instance 'one-slot-subclass :b b))
(compile 'make-one-slot-subclass)
-(defmethod update-instance-for-redifined-class
+(defmethod update-instance-for-redefined-class
((object one-slot-superclass) added discarded plist &rest initargs)
(declare (ignore initargs))
(error "Called U-I-F-R-C on ~A" object))
(defvar *cons-here*)
+(declaim (notinline args))
+(defun take (&rest args)
+ (declare (ignore args)))
+
(defmacro alloc (&body body)
"Execute BODY and try to reduce the chance of leaking a conservative root."
#-sb-thread
(sb-thread::wait-on-semaphore ,sem)
(values-list ,values))))
-(defun take (&rest args)
- (declare (ignore args)))
-
(with-test (:name (:hash-table :weakness :eql :numbers))
(flet ((random-number ()
(random 1000)))
(sb-ext:schedule-timer ticker 0 :repeat-interval 0.00001)
thread)))))))
-;;;; OS X doesn't like these being at all, and gives us a SIGSEGV
-;;;; instead of using the Mach expection system! Our or OS X's fault?
-;;;; :/
-
+;;;; FIXME: OS X 10.4 doesn't like these being at all, and gives us a SIGSEGV
+;;;; instead of using the Mach expection system! 10.5 on the other tends to
+;;;; lose() where with interrupt already pending. :/
+;;;;
+;;;; FIXME: This test also occasionally hangs on Linux/x86-64 at least. The
+;;;; common feature is one thread in gc_stop_the_world, and another trying to
+;;;; signal_interrupt_thread, but both (apparently) getting EAGAIN repeatedly.
+;;;; Exactly how or why this is happening remains under investigation -- but
+;;;; it seems plausible that the fast timers simply fill up the interrupt
+;;;; queue completely. (On some occasions the process unwedges itself after
+;;;; a few minutes, but not always.)
(with-test (:name (:timer :schedule-stress))
(flet ((test ()
(let* ((slow-timers (loop for i from 1 upto 100
do (sb-ext:schedule-timer (make-timer #'one :thread thread) 0.001))))))
(dolist (thread threads)
(sched thread)))
- (with-timeout (truncate goal 100)
- (mapcar #'sb-thread:join-thread threads))))))
+ (mapcar #'sb-thread:join-thread threads)))))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.16.45"
+"1.0.16.46"