macro-stepper: fix race condition in frame init / events

This commit is contained in:
Ryan Culpepper 2010-11-08 15:03:33 -07:00
parent ae164d281b
commit 1fe73ffaef

View File

@ -47,21 +47,21 @@
(define stepper #f) (define stepper #f)
(inherit new-stepper) (inherit new-stepper)
(define/public (lazy-new-stepper) (define/private (lazy-new-stepper)
(unless stepper (unless stepper
(set! stepper (new-stepper)))) (set! stepper (new-stepper))))
(define/override (add-trace events) (define/override (add-trace events)
(lazy-new-stepper)
(parameterize ((current-eventspace eventspace)) (parameterize ((current-eventspace eventspace))
(queue-callback (queue-callback
(lambda () (lambda ()
(lazy-new-stepper)
(super add-trace events))))) (super add-trace events)))))
(define/override (add-deriv deriv) (define/override (add-deriv deriv)
(lazy-new-stepper)
(parameterize ((current-eventspace eventspace)) (parameterize ((current-eventspace eventspace))
(queue-callback (queue-callback
(lambda () (lambda ()
(lazy-new-stepper)
(super add-deriv deriv))))) (super add-deriv deriv)))))
(define/override (new-stepper-frame) (define/override (new-stepper-frame)