From c123a8cc5d306e5d6aa4bf70317f1c7d1c7ae489 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Sun, 28 Nov 2010 15:46:22 -0600 Subject: [PATCH] fixed a bug that caused a leak that held onto drracket frames. The bug was that the planet log message registration was happening on drracket's thread instead of on the user's thread, so it was using the wrong keys in the ephemerons. --- collects/drracket/private/rep.rkt | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/collects/drracket/private/rep.rkt b/collects/drracket/private/rep.rkt index 4c4fedc842..ccc32f1945 100644 --- a/collects/drracket/private/rep.rkt +++ b/collects/drracket/private/rep.rkt @@ -1320,15 +1320,17 @@ TODO (initialize-parameters snip-classes)))) - ;; register drscheme with the planet-terse-register for the user's namespace - ;; must be called after 'initialize-parameters' is called (since it initializes - ;; the user's namespace) - (planet-terse-set-key (gensym)) - (planet-terse-register - (lambda (tag package) - (parameterize ([current-eventspace drracket:init:system-eventspace]) - (queue-callback (λ () (new-planet-info tag package)))))) - + (queue-user/wait + (λ () + ;; register drscheme with the planet-terse-register for the user's namespace + ;; must be called after 'initialize-parameters' is called (since it initializes + ;; the user's namespace) + (planet-terse-set-key (namespace-module-registry (current-namespace))) + (planet-terse-register + (lambda (tag package) + (parameterize ([current-eventspace drracket:init:system-eventspace]) + (queue-callback (λ () (new-planet-info tag package)))))))) + ;; disable breaks until an evaluation actually occurs (send context set-breakables #f #f)