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.
This commit is contained in:
parent
19fd7229bc
commit
d5ce7bcfa2
|
@ -75,12 +75,14 @@
|
||||||
;; Release MUTEX while executing PROC.
|
;; Release MUTEX while executing PROC.
|
||||||
(without-mutex mutex
|
(without-mutex mutex
|
||||||
(catch #t proc
|
(catch #t proc
|
||||||
|
(const #f)
|
||||||
(lambda (key . args)
|
(lambda (key . args)
|
||||||
;; XXX: In Guile 2.0 ports are not thread-safe, so this could
|
;; XXX: In Guile 2.0 ports are not thread-safe, so this could
|
||||||
;; crash (Guile 2.2 is fine).
|
;; crash (Guile 2.2 is fine).
|
||||||
(display-backtrace (make-stack #t) (current-error-port))
|
(display-backtrace (make-stack #t) (current-error-port))
|
||||||
(print-exception (current-error-port)
|
(print-exception (current-error-port)
|
||||||
(stack-ref (make-stack #t) 0)
|
(and=> (make-stack #t)
|
||||||
|
(cut stack-ref <> 0))
|
||||||
key args))))))
|
key args))))))
|
||||||
(loop))
|
(loop))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue