From: Christopher Allan Webber Date: Sun, 22 Nov 2015 16:12:29 +0000 (-0600) Subject: Remove unused %sync-foo operators, shift parameterization to right before call X-Git-Tag: v0.1.0~115 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=3716c687bd7de908e75f347592ca0f5a789fa0d9;p=8sync.git Remove unused %sync-foo operators, shift parameterization to right before call --- diff --git a/loopy.scm b/loopy.scm index 22b6ac8..abc9801 100644 --- a/loopy.scm +++ b/loopy.scm @@ -33,7 +33,7 @@ schedule-segments-split schedule-extract-until! add-segments-contents-to-queue! - %sync 8sync %sync-at 8sync-at %sync-delay 8sync-delay + %sync 8sync make-run-request run-request? @@ -48,7 +48,7 @@ %port-request %run %run-at %run-delay 8port-request 8run 8run-at 8run-delay - + %current-agenda start-agenda agenda-run-once)) @@ -418,7 +418,7 @@ Will produce (0 . 0) instead of a negative number, if needed." (make-future call-first on-success on-fail on-error) when)) -(define-syntax-rule (%sync body args ...) +(define-syntax-rule (%sync async-request) "Run BODY asynchronously at a prompt, passing args to make-future. Pronounced `eight-sync' despite the spelling. @@ -431,33 +431,12 @@ 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." (abort-to-prompt (current-agenda-prompt) - (wrap body) - args ...)) - -(define-syntax-rule (%sync-at body when args ...) - (abort-to-prompt (current-agenda-prompt) - (wrap body) - #:when when - args ...)) - -(define-syntax-rule (%sync-delay body delay-time args ...) - (abort-to-prompt (current-agenda-prompt) - (wrap body) - #:when (tdelta delay-time) - args ...)) + async-request)) (define-syntax-rule (8sync args ...) "Alias for %sync" (%sync args ...)) -(define-syntax-rule (8sync-at args ...) - "Alias for %sync-at" - (%sync-at args ...)) - -(define-syntax-rule (8sync-delay args ...) - "Alias for %sync-delay" - (8sync-delay args ...)) - ;; Async port request and run-request meta-requests (define (make-async-request proc) "Wrap PROC in an async-request @@ -617,8 +596,7 @@ return the wrong thing via (8sync) and trip themselves up." ;; @@: Hm, maybe here would be a great place to handle ;; select'ing on ports. ;; We could compose over agenda-run-once and agenda-read-ports - (parameterize ((%current-agenda agenda)) - (agenda-run-once agenda)))) + (agenda-run-once agenda))) (if (and stop-condition (stop-condition agenda)) 'done (let* ((agenda @@ -644,7 +622,11 @@ based on the results" (define (call-proc proc) (call-with-prompt (agenda-prompt-tag agenda) - proc setup-async-request)) + (lambda () + (parameterize ((%current-agenda agenda)) + (proc))) + (lambda (kont async-request) + (setup-async-request kont async-request)))) (let ((queue (agenda-queue agenda)) (next-queue (make-q)))