From 5fa2c1d460a21216eb7773fb28ff36f89b305e36 Mon Sep 17 00:00:00 2001 From: Quentin Aristote Date: Thu, 8 Sep 2022 16:08:13 +0200 Subject: fetch-entry-holdings-by-id: only release semaphor when response is not nil --- local/bibli-paris/bibli-paris.el | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/local/bibli-paris/bibli-paris.el b/local/bibli-paris/bibli-paris.el index eeccff9..9665ead 100644 --- a/local/bibli-paris/bibli-paris.el +++ b/local/bibli-paris/bibli-paris.el @@ -156,15 +156,16 @@ more on MATCH and SCOPE." (deferred:nextc it (lambda (response) (progn - (cc:semaphore-release bibli-paris/async-requests-smp) - (let ((error-thrown (request-response-error-thrown response))) - (if error-thrown - (let ((error-symbol (car error-thrown)) - (error-data (cdr error-thrown))) - (signal error-symbol error-data)) - (let* ((data (request-response-data response)) - (d (gethash "d" data))) - (if d (gethash "Holdings" d) nil))))))))) + (when response + (cc:semaphore-release bibli-paris/async-requests-smp) + (let ((error-thrown (request-response-error-thrown response))) + (if error-thrown + (let ((error-symbol (car error-thrown)) + (error-data (cdr error-thrown))) + (signal error-symbol error-data)) + (let* ((data (request-response-data response)) + (d (gethash "d" data))) + (if d (gethash "Holdings" d) nil))))))))) (defun bibli-paris/find-library-holding (holdings &optional library) -- cgit v1.2.3