diff --git a/collects/drracket/private/rep.rkt b/collects/drracket/private/rep.rkt index 7f23ebe30c..73f533242c 100644 --- a/collects/drracket/private/rep.rkt +++ b/collects/drracket/private/rep.rkt @@ -1674,8 +1674,10 @@ TODO (reset-console) (insert-prompt) + ;; call the first-opened method on the user's thread, but wait here for that to terminate (let ([lang (drracket:language-configuration:language-settings-language user-language-settings)] - [drr-evtspace (current-eventspace)]) + [drr-evtspace (current-eventspace)] + [s (make-semaphore 0)]) (run-in-evaluation-thread (λ () (let/ec k @@ -1689,12 +1691,12 @@ TODO [else ;; this is the backwards compatible case. (send lang first-opened)]))) - (parameterize ([current-eventspace drr-evtspace]) - (queue-callback - (λ () - (send context enable-evaluation) - (end-edit-sequence) - (clear-undos)))))))) + (semaphore-post s))) + (semaphore-wait s)) + + (send context enable-evaluation) + (end-edit-sequence) + (clear-undos)) (define indenting-limit 0) (define/override (get-limit n) diff --git a/collects/drracket/private/unit.rkt b/collects/drracket/private/unit.rkt index 5db33210bd..7720df615b 100644 --- a/collects/drracket/private/unit.rkt +++ b/collects/drracket/private/unit.rkt @@ -786,7 +786,7 @@ module browser threading seems wrong. (and (or (= (last-position) 0) (not really-modified?)) (not (is-modified?)) (not (get-filename)))) - ;; inserts the auto-text if any, and executes the text if so + ;; inserts the auto-text if any (define/public (insert-auto-text) (define lang (drracket:language-configuration:language-settings-language