threadscope 0.2.6 → 0.2.7
raw patch · 2 files changed
+16/−9 lines, 2 files
Files
- GUI/SummaryView.hs +15/−8
- threadscope.cabal +1/−1
GUI/SummaryView.hs view
@@ -687,6 +687,10 @@ , gcMaxPause = 0 } +-- Fail only when assertions are turned on.+errorAs :: String -> a -> a+errorAs msg a = assert (error msg) a+ accumEvent :: StatsAccum -> CapEvent -> StatsAccum accumEvent !statsAccum (CapEvent mcap ev) = let -- For events that contain a counter with a running sum.@@ -769,15 +773,16 @@ } -- Cap is not in the GC. Mark it as idle to complete -- the identification of caps that take part- -- in the current GC. Without overwritin the mode,+ -- in the current GC. Without overwriting the mode, -- the cap could be processed later on as if -- it took part in the GC, giving wrong results. ModeEnd -> dGC { gcMode = ModeIdle } ModeIdle -> dGC -- Impossible.- ModeInit -> error "scanEvents: GlobalSyncGC ModeInit"- ModeSync{} -> error "scanEvents: GlobalSyncGC ModeSync"- ModeGHC{} -> error "scanEvents: GlobalSyncGC ModeGHC"+ ModeInit -> errorAs "scanEvents: GlobalSyncGC ModeInit" dGC+ ModeSync{} -> errorAs "scanEvents: GlobalSyncGC ModeSync" dGC+ ModeGHC{} -> -- error "scanEvents: GlobalSyncGC ModeGHC"+ dGC -- workaround for #46 GCStatsGHC{..} -> -- All caps must be stopped. Those that take part in the GC -- are in ModeInit or ModeSync, those that do not@@ -837,8 +842,9 @@ -- Cap not in the current GC, leave it alone. ModeIdle -> dGC -- Impossible.- ModeInit -> error "scanEvents: GCStatsGHC ModeInit"- ModeGHC{} -> error "scanEvents: GCStatsGHC ModeGHC"+ ModeInit -> errorAs "scanEvents: GCStatsGHC ModeInit" dGC+ ModeGHC{} -> -- error "scanEvents: GCStatsGHC ModeGHC"+ dGC -- workaround for #46 -- The last two cases are copied from case @GlobalSyncGC@ -- to work around low-resolution timestamps (#35). -- Normally, these states would be impossible here, because@@ -915,8 +921,9 @@ in sd { dGCTable = IM.insert cap newTime dGCTable , dGCMain = Just newMain }- ModeEnd -> error "scanEvents: EndGC ModeEnd"- ModeIdle -> error "scanEvents: EndGC ModeIdle"+ ModeEnd -> errorAs "scanEvents: EndGC ModeEnd" sd+ ModeIdle -> errorAs "scanEvents: EndGC ModeIdle"+ $ sd { dGCTable = IM.insert cap endedGC dGCTable } SparkCounters crt dud ovf cnv fiz gcd _rem -> -- We are guranteed the first spark counters event has all zeroes, -- do we don't need to rig the counters for maximal interval.
threadscope.cabal view
@@ -1,5 +1,5 @@ Name: threadscope-Version: 0.2.6+Version: 0.2.7 Category: Development, Profiling, Trace Synopsis: A graphical tool for profiling parallel Haskell programs. Description: ThreadScope is a graphical viewer for thread profile