From 91f825fec2594c9ce9f0e4cbaecd1ad1315ae462 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 30 Nov 2014 21:34:26 -0500 Subject: live-reload: Protect against deleted files and also check ctime. * sly/live-reload.scm (live-reload): Check if file exists before making stat call. Check ctime in addition to mtime. --- sly/live-reload.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sly/live-reload.scm b/sly/live-reload.scm index 78c4cf7..ed4d94a 100644 --- a/sly/live-reload.scm +++ b/sly/live-reload.scm @@ -41,13 +41,16 @@ filename string." (apply proc filename args)) (define (current-mtime) - (stat:mtime (stat filename))) + (let ((info (stat filename))) + (max (stat:mtime info) (stat:ctime info)))) (let ((asset (make-signal (load-asset)))) (coroutine (let loop ((last-mtime (current-mtime))) (wait live-reload-interval) - (let ((mtime (current-mtime))) + (let ((mtime (if (file-exists? filename) + (current-mtime) + last-mtime))) (when (> mtime last-mtime) (signal-set! asset (load-asset))) (loop mtime)))) -- cgit v1.2.3