From 4eb6b55e980fda9c4d260820f5a6d38dde3d0991 Mon Sep 17 00:00:00 2001 From: hallgren Date: Mon, 8 Sep 2014 15:43:20 +0000 Subject: (1) Refactor concurrency, (2) write to .gfo.tmp then rename to .gfo (1) introduces the module GF.Infra.Concurreny with lifted concurrency operators (to reduce uses of liftIO) and some additional concurrency utilities, e.g. a function for sequential logging that is used in both GF.CompileInParallel and GFServer. (2) avoids leaving broken .gfo files behind if compilation is aborted. --- src/compiler/GF/System/Directory.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/compiler/GF/System') diff --git a/src/compiler/GF/System/Directory.hs b/src/compiler/GF/System/Directory.hs index 306c5fbcb..898646063 100644 --- a/src/compiler/GF/System/Directory.hs +++ b/src/compiler/GF/System/Directory.hs @@ -7,7 +7,7 @@ import System.Directory as D hiding (canonicalizePath,createDirectoryIfMissing, doesDirectoryExist,doesFileExist,getModificationTime, getCurrentDirectory,getDirectoryContents,getPermissions, - removeFile) + removeFile,renameFile) import Data.Time.Compat canonicalizePath path = liftIO $ D.canonicalizePath path @@ -21,4 +21,5 @@ getCurrentDirectory :: MonadIO io => io FilePath getCurrentDirectory = liftIO D.getCurrentDirectory getPermissions path = liftIO $ D.getPermissions path -removeFile path = liftIO $ D.removeFile path \ No newline at end of file +removeFile path = liftIO $ D.removeFile path +renameFile path = liftIO . D.renameFile path -- cgit v1.2.3