]> gitweb.factorcode.org Git - factor.git/blob - basis/db/pools/pools.factor
Merge branch 'master' of git://factorcode.org/git/factor
[factor.git] / basis / db / pools / pools.factor
1 ! Copyright (C) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors kernel arrays namespaces sequences continuations
4 io.pools db ;
5 IN: db.pools
6
7 TUPLE: db-pool < pool db params ;
8
9 : <db-pool> ( params db -- pool )
10     db-pool <pool>
11         swap >>db
12         swap >>params ;
13
14 : with-db-pool ( db params quot -- )
15     >r <db-pool> r> with-pool ; inline
16
17 M: db-pool make-connection ( pool -- )
18     [ params>> ] [ db>> ] bi make-db db-open ;
19
20 : with-pooled-db ( pool quot -- )
21     [ db swap with-variable ] curry with-pooled-connection ; inline