r2913: *** empty log message ***
[clsql.git] / sql / pool.cl
index 9e94deab90fe9390ef32ae2ca46cfe1cd91b40de..f4d965c01faac49e91257cd7d7fa76c89c3c22dc 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmers:   Kevin M. Rosenberg, Marc Battyani
 ;;;; Date Started:  Apr 2002
 ;;;;
-;;;; $Id: pool.cl,v 1.4 2002/05/03 20:50:18 marc.battyani Exp $
+;;;; $Id: pool.cl,v 1.8 2002/09/17 17:16:43 kevin Exp $
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
@@ -48,8 +48,8 @@
   (setf (fill-pointer (free-connections pool)) 0)
   (setf (fill-pointer (all-connections pool)) 0))
 
-(defun find-or-create-conn-pool (connection-spec database-type)
-  "Find connection vector in hash table, creates a new conn-vector if not found"
+(defun find-or-create-connection-pool (connection-spec database-type)
+  "Find connection pool in hash table, creates a new connection pool if not found"
   (let* ((key (list connection-spec database-type))
         (conn-pool (gethash key *db-pool*)))
     (unless conn-pool
@@ -61,7 +61,7 @@
 
 (defun acquire-from-pool (connection-spec database-type &optional pool)
   (unless (typep pool 'conn-pool)
-    (setf pool (find-or-create-conn-pool connection-spec database-type)))
+    (setf pool (find-or-create-connection-pool connection-spec database-type)))
   (acquire-from-conn-pool pool))
 
 (defun release-to-pool (database)
   (when clear (clrhash *db-pool*))
   t)
 
-;;; with-db-from-pool is the macro you should use if you want to use pooled connections.
-;;; You can use it with a connection spec and database type or directly with a conn-pool.
-;;; When you give a conn-pool the connection spec and database type are ignored
-
-(defmacro with-db-from-pool ((db-var connection-spec database-type &optional conn-pool) &body body)
-  "Evaluate the body in an environment, where `db-var' is bound to a
-database connection acquired from the connection pool
-The connection is automatically released to the connection pool on exit from the body.
-If a pool is given then the connection-spec database-type are ignored."
-  `(let ((,db-var (acquire-from-pool ,connection-spec ,database-type ,conn-pool)))
-     (unwind-protect
-         (let ((,db-var ,db-var)) ,@body)
-       (release-to-pool ,db-var))))