aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/web/server.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-data-service/web/server.scm')
-rw-r--r--guix-data-service/web/server.scm10
1 files changed, 6 insertions, 4 deletions
diff --git a/guix-data-service/web/server.scm b/guix-data-service/web/server.scm
index b220b20..81c59fb 100644
--- a/guix-data-service/web/server.scm
+++ b/guix-data-service/web/server.scm
@@ -33,11 +33,13 @@
(define (with-postgresql-connection paramstring f)
(let* ((conn (connect-to-postgres-paramstring paramstring)))
- (dynamic-wind
- (const #t)
- (lambda ()
- (f conn))
+ (with-throw-handler
+ #t
(lambda ()
+ (let ((result (f conn)))
+ (pg-conn-finish conn)
+ result))
+ (lambda (key . args)
(pg-conn-finish conn)))))
(define (run-controller controller request body)