Skip to content

Commit fcc02be

Browse files
committed
Ensure that temporary files are deleted
1 parent 63be78b commit fcc02be

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

ghc-events.cabal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ library
8989
array >= 0.2 && < 0.6,
9090
text >= 0.11.2.3 && < 1.3,
9191
vector >= 0.7 && < 0.13,
92+
temporary,
9293
directory
9394
exposed-modules: GHC.RTS.Events,
9495
GHC.RTS.Events.Sort

src/GHC/RTS/Events/Sort.hs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import Data.List (sortBy, minimumBy)
1616
import Data.Maybe
1717
import Data.Foldable (toList)
1818
import System.IO
19+
import System.IO.Temp
1920
import System.Directory
2021
import Prelude
2122

@@ -57,20 +58,23 @@ defaultSortParams =
5758
, maxFanIn = 256
5859
}
5960

60-
-- | @sortEvents tmpDir outPath eventlog@ sorts @eventlog@ via on-disk merge
61-
-- sort, using @tmpDir@ for intermediate data. The sorted eventlog is written
62-
-- to @eventlog@.
61+
-- | @sortEvents outPath eventlog@ sorts @eventlog@ via on-disk merge
62+
-- sort. The sorted eventlog is written to @eventlog@. The system's temporary
63+
-- directory is used for temporary data. See 'sortEvents\'' for more control.
6364
sortEvents
64-
:: FilePath -- ^ temporary directory
65-
-> FilePath -- ^ output eventlog file path
65+
:: FilePath -- ^ output eventlog file path
6666
-> EventLog -- ^ eventlog to sort
6767
-> IO ()
68-
sortEvents = sortEvents' defaultSortParams
68+
sortEvents outPath eventLog =
69+
withSystemTempDirectory "sort-events" $ \tmpDir ->
70+
sortEvents' defaultSortParams tmpDir outPath eventLog
6971

7072
-- | @sortEvents' params tmpDir outPath eventlog@ sorts
7173
-- @eventlog@ via on-disk merge sort, using @tmpDir@ for
72-
-- intermediate data. The sorted eventlog is written to
73-
-- @eventlog@.
74+
-- intermediate data. The caller is responsible for deleting @tmpDir@ upon
75+
-- return.
76+
--
77+
-- The sorted eventlog is written to @eventlog@.
7478
sortEvents'
7579
:: SortParams
7680
-> FilePath -- ^ temporary directory

0 commit comments

Comments
 (0)