(declare (ignore _))
nil)
-(let ((junk (mapcar (lambda (_)
- (declare (ignore _))
- (let ((x (gensym)))
- (finalize x (lambda ()
- ;; cons in finalizer
- (setf *tmp* (make-list 10000))
- (incf *count*)))
- x))
- (make-list 10000))))
+(let ((junk (mapcar (compile nil '(lambda (_)
+ (declare (ignore _))
+ (let ((x (gensym)))
+ (finalize x (lambda ()
+ ;; cons in finalizer
+ (setf *tmp* (make-list 10000))
+ (incf *count*)))
+ x)))
+ (make-list 10000))))
(setf junk (foo junk))
(foo junk))
EOF
SBCL_PID=$!
-WAITED=0
+WAITED=x
echo "Waiting for SBCL to finish stress-testing finalizers"
while true; do
exit 1 # Failure
fi
sleep 1
- WAITED=$(($WAITED+1))
- if (($WAITED>60)); then
+ WAITED="x$WAITED"
+ if [ $WAITED = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ]; then
echo
echo "timeout, killing SBCL"
kill -9 $SBCL_PID