X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Fdatabase.lisp;h=f23eea2dbb5f5bf366d364f1d2655de692fd9540;hb=2cc1083c5a91cd9cf1d7b83649fdbb942028eea1;hp=9b716444f0256b51c13c98a2a4ffd0a57588561a;hpb=e567409d9fff3f7231c2a0bb69b345e19de2b246;p=clsql.git diff --git a/sql/database.lisp b/sql/database.lisp index 9b71644..f23eea2 100644 --- a/sql/database.lisp +++ b/sql/database.lisp @@ -166,11 +166,12 @@ from a pool it will be released to this pool." (let ((database (find-database database :errorp (and database error)))) (when database (if (conn-pool database) - (when (release-to-pool database) - (setf *connected-databases* (delete database *connected-databases*)) - (when (eq database *default-database*) - (setf *default-database* (car *connected-databases*))) - t) + (with-process-lock ((conn-pool-lock (conn-pool database)) "Delete from pool") + (when (release-to-pool database) + (setf *connected-databases* (delete database *connected-databases*)) + (when (eq database *default-database*) + (setf *default-database* (car *connected-databases*))) + t)) (when (database-disconnect database) (setf *connected-databases* (delete database *connected-databases*)) (when (eq database *default-database*)