diff options
author | Danjela Lura <danielaluraa@gmail.com> | 2020-08-07 18:52:30 +0200 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-08-12 08:53:54 +0100 |
commit | bef826cf2ef17d5d7d9a6f4b339b5b40c82075d0 (patch) | |
tree | f050571d3a51beefc28162735e2105820b0d6f02 | |
parent | 5b3e5d9441948fe621c495a36556ec1011f65b41 (diff) | |
download | data-service-bef826cf2ef17d5d7d9a6f4b339b5b40c82075d0.tar data-service-bef826cf2ef17d5d7d9a6f4b339b5b40c82075d0.tar.gz |
Make call-with-time-logging handle multiple return values
Signed-off-by: Christopher Baines <mail@cbaines.net>
-rw-r--r-- | guix-data-service/utils.scm | 15 |
1 files 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 @@ ;;; <http://www.gnu.org/licenses/>. (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." |