bikeshed watch script
This commit is contained in:
parent
e2fee2f19a
commit
0b5ff3eab5
|
@ -12,24 +12,26 @@
|
|||
|
||||
(define (watch-forever file)
|
||||
(sleep 0.2)
|
||||
(define chg-evt (filesystem-change-evt file (lambda ()
|
||||
(displayln "error watching file...")
|
||||
(sleep 1) (watch-forever file))))
|
||||
(define runner (thread (lambda () (reinvoke file))))
|
||||
(match (filesystem-change-evt file (λ () #f))
|
||||
[#f
|
||||
(displayln "error watching file...")
|
||||
(sleep 1)]
|
||||
[chg-evt
|
||||
(define runner (thread (lambda () (reinvoke file))))
|
||||
|
||||
(define (handle-break _)
|
||||
(cond
|
||||
[(sync/timeout 0 runner)
|
||||
(displayln "exiting")
|
||||
(exit)]
|
||||
[else
|
||||
(displayln "killing module")
|
||||
(kill-thread runner)
|
||||
(filesystem-change-evt-cancel chg-evt)]))
|
||||
(define (handle-break _)
|
||||
(cond
|
||||
[(sync/timeout 0 runner)
|
||||
(displayln "exiting")
|
||||
(exit)]
|
||||
[else
|
||||
(displayln "killing module")
|
||||
(kill-thread runner)
|
||||
(filesystem-change-evt-cancel chg-evt)]))
|
||||
|
||||
(with-handlers ([exn:break? handle-break])
|
||||
(sync chg-evt)
|
||||
(kill-thread runner))
|
||||
(with-handlers ([exn:break? handle-break])
|
||||
(sync chg-evt)
|
||||
(kill-thread runner))])
|
||||
(watch-forever file))
|
||||
|
||||
(define-runtime-path aoc "aoc.rkt")
|
||||
|
|
Loading…
Reference in New Issue