From a039248b9f341fcf9de06d73e20d9f8895c6621d Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 11 Jan 2019 20:10:43 -0700 Subject: [PATCH] cs: unbreak `unsafe-get-place-table` --- racket/src/cs/rumble/place.ss | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/racket/src/cs/rumble/place.ss b/racket/src/cs/rumble/place.ss index 66ffed4c9e..4a97e17822 100644 --- a/racket/src/cs/rumble/place.ss +++ b/racket/src/cs/rumble/place.ss @@ -35,9 +35,6 @@ (define (place-local-register-set! i v) (#%vector-set! (place-registers) i v)) -(define (place-local-register-cas! i old-v new-v) - (#%vector-cas! (place-registers) i old-v new-v)) - (define (place-local-register-init! i v) (place-local-register-set! i v) (#%vector-set! place-register-inits i v)) @@ -53,10 +50,11 @@ (define place-specific-table (unsafe-make-place-local #f)) (define (unsafe-get-place-table) - (or (unsafe-place-local-ref place-specific-table) - (begin - (place-local-register-cas! place-specific-table #f (make-hasheq)) - (unsafe-get-place-table)))) + (with-interrupts-disabled + (or (unsafe-place-local-ref place-specific-table) + (let ([ht (make-hasheq)]) + (unsafe-place-local-set! place-specific-table ht) + ht)))) ;; ----------------------------------------