From 800c8502763186cbbdfe4b195ccb895c5473e97b Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 24 Mar 2019 17:32:03 +0000 Subject: [PATCH] Switch dynamic-wind for with-throw-handler Not sure why, but dynamic-wind was causing issues by closing the database connection too early, but with-throw-handler seems to work OK. --- guix-data-service/web/server.scm | 10 ++++++---- 1 file 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)