From bef826cf2ef17d5d7d9a6f4b339b5b40c82075d0 Mon Sep 17 00:00:00 2001 From: Danjela Lura Date: Fri, 7 Aug 2020 18:52:30 +0200 Subject: Make call-with-time-logging handle multiple return values Signed-off-by: Christopher Baines --- guix-data-service/utils.scm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/guix-data-service/utils.scm b/guix-data-service/utils.scm index 1eb3e4f..738f839 100644 --- a/guix-data-service/utils.scm +++ b/guix-data-service/utils.scm @@ -16,18 +16,21 @@ ;;; . (define-module (guix-data-service utils) + #:use-module (srfi srfi-11) #:export (call-with-time-logging with-time-logging prevent-inlining-for-tests)) (define (call-with-time-logging action thunk) (simple-format #t "debug: Starting ~A\n" action) - (let* ((start-time (current-time)) - (result (thunk)) - (time-taken (- (current-time) start-time))) - (simple-format #t "debug: Finished ~A, took ~A seconds\n" - action time-taken) - result)) + (let-values + ((result + (thunk))) + (let* ((start-time (current-time)) + (time-taken (- (current-time) start-time))) + (simple-format #t "debug: Finished ~A, took ~A seconds\n" + action time-taken) + (apply values result)))) (define-syntax-rule (with-time-logging action exp ...) "Log under NAME the time taken to evaluate EXP." -- cgit v1.2.3