From e7161a37ba465d41bb9fde3ba1d3a7a3f4f8da42 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 11 Dec 2015 20:03:53 -0600 Subject: [PATCH] Return a value to the continuations from various %8sync-* calls Just doing (kont) would result in an error at times. * 8sync/agenda.scm (%8sync-port, %8sync-port-remove, %8sync-immediate): Updated with fix. --- 8sync/agenda.scm | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/8sync/agenda.scm b/8sync/agenda.scm index 3bd5787..af5ef3c 100644 --- a/8sync/agenda.scm +++ b/8sync/agenda.scm @@ -575,14 +575,20 @@ Possibly specify WHEN as the second argument." (make-async-request (lambda (kont) (list (make-port-request port port-request-args ...) - (make-run-request kont #f)))))) + (make-run-request + ;; What's with returning #f to kont? + ;; Otherwise we sometimes get errors like + ;; "Zero values returned to single-valued continuation"" + (wrap (kont #f)) #f)))))) (define-syntax-rule (%8sync-port-remove port) (%8sync-abort-to-prompt (make-async-request (lambda (kont) (list (make-port-remove-request port) - (make-run-request kont #f)))))) + (make-run-request + ;; See comment in %8sync-port + (wrap (kont #f)) #f)))))) ;; TODO: Write (%run-immediately) @@ -593,7 +599,9 @@ forge ahead in our current function!" (%8sync-abort-to-prompt (make-async-request (lambda (kont) - (list (make-run-request kont #f) + (list (make-run-request + ;; See comment in %8sync-port + (wrap (kont #f)) #f) (make-run-request body #f)))))) (define-syntax-rule (catch-8sync exp (handler-key handler) ...) -- 2.31.1