summaryrefslogtreecommitdiff
path: root/guix/git.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/git.scm')
-rw-r--r--guix/git.scm13
1 files changed, 6 insertions, 7 deletions
diff --git a/guix/git.scm b/guix/git.scm
index 17a6784aef..406c817341 100644
--- a/guix/git.scm
+++ b/guix/git.scm
@@ -34,13 +34,12 @@
(make-parameter "/var/cache/guix/checkouts"))
(define-syntax-rule (with-libgit2 thunk ...)
- (dynamic-wind
- (lambda ()
- (libgit2-init!))
- (lambda ()
- thunk ...)
- (lambda ()
- (libgit2-shutdown))))
+ (begin
+ ;; XXX: The right thing to do would be to call (libgit2-shutdown) here,
+ ;; but pointer finalizers used in guile-git may be called after shutdown,
+ ;; resulting in a segfault. Hence, let's skip shutdown call for now.
+ (libgit2-init!)
+ thunk ...))
(define* (url-cache-directory url
#:optional (cache-directory