projects
/
8sync.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
789ab5c
)
Provide a way to break away through an agenda's prompt tag
author
Christopher Allan Webber
<cwebber@dustycloud.org>
Tue, 17 Nov 2015 23:31:17 +0000
(17:31 -0600)
committer
Christopher Allan Webber
<cwebber@dustycloud.org>
Tue, 17 Nov 2015 23:31:17 +0000
(17:31 -0600)
loopy.scm
patch
|
blob
|
history
diff --git
a/loopy.scm
b/loopy.scm
index 09034f409a65c341bec53fcaa954631cb68c3aad..e03cab6ae59d03ec34b72cd84f511f3ec6ca8c00 100644
(file)
--- a/
loopy.scm
+++ b/
loopy.scm
@@
-7,12
+7,18
@@
;; replace this
(define-immutable-record-type <agenda>
;; replace this
(define-immutable-record-type <agenda>
- (make-agenda-intern queue)
+ (make-agenda-intern queue
prompt-tag
)
agenda?
agenda?
- (queue agenda-queue))
+ (queue agenda-queue)
+ (prompt-tag agenda-prompt-tag))
-(define* (make-agenda #:key (queue (make-q)))
- (make-agenda-intern queue))
+(define (make-async-prompt-tag)
+ (make-prompt-tag "prompt"))
+
+(define* (make-agenda #:key
+ (queue (make-q))
+ (prompt (make-prompt-tag)))
+ (make-agenda-intern queue prompt))
(define %current-agenda (make-parameter #f))
(define %current-agenda (make-parameter #f))
@@
-28,11
+34,19
@@
(define (agenda-run-once agenda)
"Run once through the agenda, and produce a new agenda
based on the results"
(define (agenda-run-once agenda)
"Run once through the agenda, and produce a new agenda
based on the results"
+ (define (call-proc proc)
+ (call-with-prompt
+ (agenda-prompt-tag agenda)
+ (lambda ()
+ (proc))
+ ;; TODO
+ (lambda (k) k)))
+
(let ((queue (agenda-queue agenda))
(next-queue (make-q)))
(while (not (q-empty? queue))
(let* ((proc (q-pop! queue))
(let ((queue (agenda-queue agenda))
(next-queue (make-q)))
(while (not (q-empty? queue))
(let* ((proc (q-pop! queue))
- (proc-result (proc))
+ (proc-result (
call-proc
proc))
(enqueue
(lambda (new-proc)
(enq! next-queue new-proc))))
(enqueue
(lambda (new-proc)
(enq! next-queue new-proc))))