diff --git a/racket/syndicate/actor.rkt b/racket/syndicate/actor.rkt index 040e807..a869e83 100644 --- a/racket/syndicate/actor.rkt +++ b/racket/syndicate/actor.rkt @@ -645,10 +645,14 @@ (define-syntax-rule (define/query-hash id P x ...) (define id (query-hash id P x ...))) (define-syntax-rule (define/query-hash-set id P x ...) (define id (query-hash-set id P x ...))) -(define-syntax-rule (immediate-query op args ...) - (react/suspend (k) - (define query-result (op query-result args ...)) - (on-start (flush!) (k (query-result))))) +(define-syntax (immediate-query stx) + (syntax-case stx () + [(_ [op args ...] ...) + (with-syntax [((query-result ...) (generate-temporaries #'(op ...)))] + (syntax/loc stx + (react/suspend (k) + (define query-result (op query-result args ...)) ... + (on-start (flush!) (k (query-result) ...)))))])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/racket/syndicate/drivers/config.rkt b/racket/syndicate/drivers/config.rkt index ff4d983..670dbe9 100644 --- a/racket/syndicate/drivers/config.rkt +++ b/racket/syndicate/drivers/config.rkt @@ -34,4 +34,4 @@ (define/query-value id default (config scope (list 'key $val)) val)])) (define (config-ref #:scope [scope ?] key default) - (immediate-query query-value default (config scope (list key $val)) val)) + (immediate-query (query-value default (config scope (list key $val)) val)))