aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix-data-service/utils.scm15
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."