
21 Sep
2018
21 Sep
'18
4:25 a.m.
Hello, I would like to have your advice in order to optimize this code. The purpose is to trigg an action 'a' if a list of files (thousands) exists. A process copy files from one directory to another. allFilesThere :: MonadIO m => [Path Abs File] -> m Bool allFilesThere fs = liftIO $ allM (doesFileExist . fromAbsFile) fs trigOnAllFiles :: MonadIO m => m r -> [Path Abs File] -> m r trigOnAllFiles a fs = go where go = do r <- allFilesThere fs if r then a else ( do liftIO $ threadDelay 1000000 go) It works, but it consums a lot's of resources when all the files does not exists yet. So I would like your advice in order to optimize it :) thanks for your help. Frederic