From f4453df9a5742ef47cad79254b33bfaa1ff15d24 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 16 Jun 2017 14:23:51 +0200 Subject: store: Add an RPC counter. * guix/store.scm (%rpc-calls): New variable. (show-rpc-profile, record-operation): New procedures. (operation): Add call to 'record-operation'. * guix/ui.scm (run-guix-command): Wrap COMMAND-MAIN in 'dynamic-wind'. Run EXIT-HOOK. --- guix/ui.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'guix/ui.scm') diff --git a/guix/ui.scm b/guix/ui.scm index 56fcc00300..889c9d0228 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1318,7 +1318,14 @@ found." (parameterize ((program-name command)) ;; Disable canonicalization so we don't don't stat unreasonably. (with-fluids ((%file-port-name-canonicalization #f)) - (apply command-main args))))) + (dynamic-wind + (const #f) + (lambda () + (apply command-main args)) + (lambda () + ;; Abuse 'exit-hook' (which is normally meant to be used by the + ;; REPL) to run things like profiling hooks upon completion. + (run-hook exit-hook))))))) (define (run-guix . args) "Run the 'guix' command defined by command line ARGS. -- cgit v1.2.3