From: Christopher Allan Webber Date: Sat, 7 May 2016 17:20:18 +0000 (-0500) Subject: agenda: Permit a post-run-hook in start-agenda. X-Git-Tag: v0.2.0~3 X-Git-Url: https://jxself.org/git/?p=8sync.git;a=commitdiff_plain;h=3f5eebe33a3b4da86e997229afccbea1acb8db5d agenda: Permit a post-run-hook in start-agenda. * 8sync/agenda.scm (start-agenda): Add a post-run-hook keyword argument. This permits more live hacking madness, as used in syncmud. --- diff --git a/8sync/agenda.scm b/8sync/agenda.scm index c417a40..05a9996 100644 --- a/8sync/agenda.scm +++ b/8sync/agenda.scm @@ -745,7 +745,9 @@ Also handles sleeping when all we have to do is wait on the schedule." ;; the default stop-condition? (stop-condition stop-on-nothing-to-do) (get-time gettimeofday) - (handle-ports update-agenda-from-select!)) + (handle-ports update-agenda-from-select!) + ;; For live hacking madness, etc + (post-run-hook #f)) ;; TODO: Document fields "Start up the AGENDA" (let loop ((agenda agenda)) @@ -754,6 +756,11 @@ Also handles sleeping when all we have to do is wait on the schedule." ;; select'ing on ports. ;; We could compose over agenda-run-once and agenda-read-ports (agenda-run-once agenda))) + ;; @@: This relies on mutation at present on the queue, in the rare + ;; event it's used. If we ever switch to something more immutable, + ;; it should return a new modified agenda instead. + (if post-run-hook + (post-run-hook agenda)) (if (and stop-condition (stop-condition agenda)) 'done (let* ((agenda