From 618804578fc4de5ca2ecad1c72711c87c1bfcda1 Mon Sep 17 00:00:00 2001 From: ash Date: Thu, 23 Oct 2025 08:21:30 +0100 Subject: [PATCH 1/2] Avoid doing lazy IO on build-reports.csv This was broken in 611161f (Strictify, 2022-11-21). Co-authored-by: Nathan van Doorn --- lib/NOM/Update/Monad/CacheBuildReports.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/NOM/Update/Monad/CacheBuildReports.hs b/lib/NOM/Update/Monad/CacheBuildReports.hs index e6f9401..4a1cc62 100644 --- a/lib/NOM/Update/Monad/CacheBuildReports.hs +++ b/lib/NOM/Update/Monad/CacheBuildReports.hs @@ -59,7 +59,7 @@ tryUpdateBuildReports updateFunc = do updateBuildReportsUnlocked :: (BuildReportMap -> BuildReportMap) -> FilePath -> IO BuildReportMap updateBuildReportsUnlocked updateFunc dir = do - reports <- updateFunc <$> loadBuildReports dir + !reports <- updateFunc <$> loadBuildReports dir reports <$ saveBuildReports dir reports buildReportsDir :: IO FilePath From 228124930b8da2eb7b793823799baf563976c5b6 Mon Sep 17 00:00:00 2001 From: ash Date: Thu, 23 Oct 2025 08:21:30 +0100 Subject: [PATCH 2/2] Avoid needlessly using a separate file for build-reports.csv locking Co-authored-by: Nathan van Doorn --- lib/NOM/Update/Monad/CacheBuildReports.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/NOM/Update/Monad/CacheBuildReports.hs b/lib/NOM/Update/Monad/CacheBuildReports.hs index 4a1cc62..cbac0d0 100644 --- a/lib/NOM/Update/Monad/CacheBuildReports.hs +++ b/lib/NOM/Update/Monad/CacheBuildReports.hs @@ -14,7 +14,7 @@ import NOM.Builds (Host (..)) import Relude import System.Directory (XdgDirectory (XdgCache), createDirectoryIfMissing, getXdgDirectory) import System.FileLock (SharedExclusive (Exclusive), withFileLock) -import System.FilePath ((<.>), ()) +import System.FilePath (()) -- Exposed functions @@ -53,7 +53,7 @@ tryUpdateBuildReports updateFunc = do dir <- buildReportsDir catchIO (createDirectoryIfMissing True dir) (const pass) withFileLock - (dir buildReportsFilename <.> "lock") + (dir buildReportsFilename) Exclusive (const $ updateBuildReportsUnlocked updateFunc dir)