~ruther/guix-local

d5ce7bcfa2f4d9a1d3da669ade155cc7042f84ec — Ludovic Courtès 8 years ago 19fd722
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.
1 files changed, 3 insertions(+), 1 deletions(-)

M guix/workers.scm
M guix/workers.scm => guix/workers.scm +3 -1
@@ 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))