X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=sql%2Fdatabase.lisp;fp=sql%2Fdatabase.lisp;h=14bcdc8a02d47453b283400162e794c7df9c913a;hp=9b716444f0256b51c13c98a2a4ffd0a57588561a;hb=b0aeb15f9ab4059792ffef6b819bf795755ff8b4;hpb=75ad7c26edaeea7225c7af0f2800ebc03975858a diff --git a/sql/database.lisp b/sql/database.lisp index 9b71644..14bcdc8 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 pool) "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*)