diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-11-17 10:47:56 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-11-17 10:47:56 +0100 |
commit | d5ce7bcfa2f4d9a1d3da669ade155cc7042f84ec (patch) | |
tree | 6cb280502aef5222f3f4ae6e33773b1127771f09 | |
parent | 19fd7229bc668e5b34adc5357557aff3f62b9308 (diff) | |
download | guix-d5ce7bcfa2f4d9a1d3da669ade155cc7042f84ec.tar.gz |
workers: Display backtrace in pre-unwind handler.
* guix/workers.scm (worker-thunk): Add (const #f) as the 'catch' handler, and move previous handler as pre-unwind handler. Protect against 'make-stack' returning #f.
-rw-r--r-- | guix/workers.scm | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/guix/workers.scm b/guix/workers.scm index 0f6f54bab0..3cd683c96d 100644 --- a/guix/workers.scm +++ b/guix/workers.scm @@ -75,12 +75,14 @@ ;; Release MUTEX while executing PROC. (without-mutex mutex (catch #t proc + (const #f) (lambda (key . args) ;; XXX: In Guile 2.0 ports are not thread-safe, so this could ;; crash (Guile 2.2 is fine). (display-backtrace (make-stack #t) (current-error-port)) (print-exception (current-error-port) - (stack-ref (make-stack #t) 0) + (and=> (make-stack #t) + (cut stack-ref <> 0)) key args)))))) (loop)) |