schedule-segments-split schedule-extract-until!
add-segments-contents-to-queue!
- %sync 8sync
+ %8sync
<run-request>
make-run-request run-request?
port-request-port
port-request-read port-request-write port-request-except
- run-it wrap run run-at run-delay
+ run-it wrap wrap-apply run run-at run-delay
%port-request %run %run-at %run-delay
8port-request 8run 8run-at 8run-delay
(lambda ()
body ...))
+(define-syntax-rule (wrap-apply body)
+ "Wrap possibly multi-value function in a procedure, applies all arguments"
+ (lambda args
+ (apply body args)))
+
+
;; @@: Do we really want `body ...' here?
;; what about just `body'?
(define-syntax-rule (run body ...)
(make-future call-first on-success on-fail on-error)
when))
-(define-syntax-rule (%sync async-request)
+(define-syntax-rule (%8sync async-request)
"Run BODY asynchronously at a prompt, passing args to make-future.
-Pronounced `eight-sync' despite the spelling.
-
-%sync was chosen because (async) was already taken and could lead to
-errors, and this version of asynchronous code uses a prompt, so the `a'
-character becomes a `%' prompt! :)
-
-The % and 8 characters kind of look similar... hence this library's
-name! (That, and the pun 'eight-synchronous' programming.)
-There are 8sync aliases if you prefer that name."
+Runs things asynchronously (8synchronously?)"
(abort-to-prompt (current-agenda-prompt)
async-request))
-(define-syntax-rule (8sync args ...)
- "Alias for %sync"
- (%sync args ...))
-
;; Async port request and run-request meta-requests
(define (make-async-request proc)
"Wrap PROC in an async-request
The purpose of this is to make sure that users don't accidentally
-return the wrong thing via (8sync) and trip themselves up."
+return the wrong thing via (%8sync) and trip themselves up."
(cons '*async-request* proc))
(define (setup-async-request resume-kont async-request)
;; TODO: deliver more helpful errors depending on what the user
;; returned
(_ (throw 'invalid-async-request
- "Invalid request passed back via an (%sync) procedure."
+ "Invalid request passed back via an (%8sync) procedure."
async-request))))
(define-syntax-rule (%run body ...)