More tweaks
This commit is contained in:
parent
ed3877e7b1
commit
30a5a924a3
|
@ -15,23 +15,6 @@
|
||||||
|
|
||||||
(spawn-timer-driver)
|
(spawn-timer-driver)
|
||||||
|
|
||||||
(define (update-file old-content name new-content)
|
|
||||||
(transition new-content
|
|
||||||
(patch-seq (retract (file name old-content))
|
|
||||||
(core:assert (file name new-content)))))
|
|
||||||
|
|
||||||
(define ((file-observation-event-handler name) e content)
|
|
||||||
(match-event e
|
|
||||||
[(? patch? p)
|
|
||||||
(if (set-empty? (project-assertions (patch-removed p) (observe (file (?!) ?))))
|
|
||||||
#f
|
|
||||||
(begin (printf "No remaining readers exist for ~v\n" name)
|
|
||||||
(quit)))]
|
|
||||||
[(message (save (file (== name) new-content)))
|
|
||||||
(update-file content name new-content)]
|
|
||||||
[(message (delete (== name)))
|
|
||||||
(update-file content name #f)]))
|
|
||||||
|
|
||||||
(define (file-system-event-handler e files)
|
(define (file-system-event-handler e files)
|
||||||
(match-event e
|
(match-event e
|
||||||
[(? patch? p)
|
[(? patch? p)
|
||||||
|
@ -56,6 +39,22 @@
|
||||||
(sub (save (file ? ?)))
|
(sub (save (file ? ?)))
|
||||||
(sub (delete ?))))
|
(sub (delete ?))))
|
||||||
|
|
||||||
|
(define (update-file old-content name new-content)
|
||||||
|
(transition new-content
|
||||||
|
(patch-seq (retract (file name old-content))
|
||||||
|
(core:assert (file name new-content)))))
|
||||||
|
|
||||||
|
(define ((file-observation-event-handler name) e content)
|
||||||
|
(match-event e
|
||||||
|
[(? patch? p)
|
||||||
|
(when (not (set-empty? (project-assertions (patch-removed p) (observe (file (?!) ?)))))
|
||||||
|
(printf "No remaining readers exist for ~v\n" name)
|
||||||
|
(quit))]
|
||||||
|
[(message (save (file (== name) new-content)))
|
||||||
|
(update-file content name new-content)]
|
||||||
|
[(message (delete (== name)))
|
||||||
|
(update-file content name #f)]))
|
||||||
|
|
||||||
(define (sleep sec)
|
(define (sleep sec)
|
||||||
(define timer-id (gensym 'sleep))
|
(define timer-id (gensym 'sleep))
|
||||||
(until (message (timer-expired timer-id _))
|
(until (message (timer-expired timer-id _))
|
||||||
|
|
Loading…
Reference in New Issue