From: Ian Lynagh Date: Sun, 16 Mar 2008 21:17:48 +0000 (+0000) Subject: Fix a space leak in :trace (trac #2128) X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=8cf861ba91941412e93f70a916233223aebf686e Fix a space leak in :trace (trac #2128) We were doing lots of cons'ing and tail'ing without forcing the tails, so were building up lots of thunks. --- diff --git a/compiler/main/InteractiveEval.hs b/compiler/main/InteractiveEval.hs index 7014d28..40eb66a 100644 --- a/compiler/main/InteractiveEval.hs +++ b/compiler/main/InteractiveEval.hs @@ -360,7 +360,7 @@ rethrow dflags io = Exception.catch io $ \e -> do -- NB. not catchDyn withInterruptsSentTo :: ThreadId -> IO r -> IO r withInterruptsSentTo thread get_result = do bracket (modifyMVar_ interruptTargetThread (return . (thread:))) - (\_ -> modifyMVar_ interruptTargetThread (return.tail)) + (\_ -> modifyMVar_ interruptTargetThread (\tl -> return $! tail tl)) (\_ -> get_result) -- This function sets up the interpreter for catching breakpoints, and