r11068: * clsql.asd: Add support for loop extensions for clisp. Support clisp...
[clsql.git] / sql / pool.lisp
index b0e228f2be7b297d57a714b5e028cb23b457c91c..6791a6e272368ad232d2318856248b743d74cd98 100644 (file)
@@ -37,7 +37,8 @@
             (vector-pop (free-connections pool))))
       (let ((conn (connect (connection-spec pool)
                           :database-type (pool-database-type pool)
-                          :if-exists :new)))
+                          :if-exists :new
+                           :make-default nil)))
        (with-process-lock ((conn-pool-lock pool) "Acquire from pool")
          (vector-push-extend conn (all-connections pool))
          (setf (conn-pool conn) pool))
@@ -52,7 +53,8 @@
   (with-process-lock ((conn-pool-lock pool) "Clear pool")
     (loop for conn across (all-connections pool)
          do (setf (conn-pool conn) nil)
-         (disconnect :database conn))
+         ;; disconnect may error if remote side closed connection
+         (ignore-errors (disconnect :database conn)))
     (setf (fill-pointer (free-connections pool)) 0)
     (setf (fill-pointer (all-connections pool)) 0))
   nil)