diff options
Diffstat (limited to 'stdlib/source/lux/world/file/watch.lux')
-rw-r--r-- | stdlib/source/lux/world/file/watch.lux | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/stdlib/source/lux/world/file/watch.lux b/stdlib/source/lux/world/file/watch.lux index 24d8657ad..85ae21b2f 100644 --- a/stdlib/source/lux/world/file/watch.lux +++ b/stdlib/source/lux/world/file/watch.lux @@ -11,9 +11,7 @@ ["." exception (#+ exception:)] [concurrency ["." promise (#+ Promise)] - ["." stm (#+ STM Var)]] - [security - ["!" capability]]] + ["." stm (#+ STM Var)]]] [data ["." product] ["." maybe] @@ -117,12 +115,12 @@ (def: (file_tracker fs directory) (-> (//.System Promise) (//.Directory Promise) (Promise (Try File_Tracker))) (do {! (try.with promise.monad)} - [files (!.use (\ directory files) [])] + [files (\ directory files [])] (monad.fold ! (function (_ file tracker) (do ! - [last_modified (!.use (\ file last_modified) [])] - (wrap (dictionary.put (!.use (\ file path) []) + [last_modified (\ file last_modified [])] + (wrap (dictionary.put (\ file path) [file last_modified] tracker)))) (: File_Tracker @@ -132,11 +130,11 @@ (def: (poll_files directory file_tracker) (-> (//.Directory Promise) File_Tracker (Promise (Try (List [//.Path (//.File Promise) Instant])))) (do {! (try.with promise.monad)} - [files (!.use (\ directory files) [])] + [files (\ directory files [])] (monad.map ! (function (_ file) (do ! - [last_modified (!.use (\ file last_modified) [])] - (wrap [(!.use (\ file path) []) file last_modified]))) + [last_modified (\ file last_modified [])] + (wrap [(\ file path) file last_modified]))) files))) (def: (poll_directory_changes [path [concern directory file_tracker]]) @@ -195,7 +193,7 @@ (if updated? (wrap (#try.Success [])) (do (try.with !) - [directory (!.use (\ fs directory) path) + [directory (\ fs directory path) file_tracker (..file_tracker fs directory)] (do ! [_ (stm.commit (stm.update (dictionary.put path [new_concern directory file_tracker]) tracker))] |