diff --git a/racket/src/ChezScheme/mats/thread.ms b/racket/src/ChezScheme/mats/thread.ms index 51988677a7..2eb9a52f44 100644 --- a/racket/src/ChezScheme/mats/thread.ms +++ b/racket/src/ChezScheme/mats/thread.ms @@ -1438,7 +1438,9 @@ (if (odd? i) (let loop () (unless (ftype-lock! A (y) a) (printf "waiting\n") (loop))) (ftype-spin-lock! A (y) a)) + (memory-order-acquire) (ftype-set! A (x) a ((if (odd? n) + -) (ftype-ref A (x) a) 1.0)) + (memory-order-release) (ftype-unlock! A (y) a)))))) (let loop () (if (equal? (length ls) n)