diff --git a/fiber_orm.nimble b/fiber_orm.nimble index 5ca3522..944a9b5 100644 --- a/fiber_orm.nimble +++ b/fiber_orm.nimble @@ -1,6 +1,6 @@ # Package -version = "1.0.1" +version = "1.0.2" author = "Jonathan Bernard" description = "Lightweight Postgres ORM for Nim." license = "GPL-3.0" diff --git a/src/fiber_orm/pool.nim b/src/fiber_orm/pool.nim index d7c06f7..bf36edd 100644 --- a/src/fiber_orm/pool.nim +++ b/src/fiber_orm/pool.nim @@ -62,14 +62,16 @@ proc maintain(pool: DbConnPool): void = let freeConns = pool.conns.filterIt(it.free) if pool.conns.len > pool.cfg.poolSize and freeConns.len > 0: let numToCull = min(freeConns.len, pool.conns.len - pool.cfg.poolSize) - let toCull = freeConns[0..numToCull] - pool.conns.keepIf((pc) => toCull.allIt(it.id != pc.id)) - for culled in toCull: - try: culled.conn.close() - except: discard "" - log().debug( - "Trimming pool size. Culled $# free connections. $# connections remaining." % - [$toCull.len, $pool.conns.len]) + + if numToCull > 0: + let toCull = freeConns[0..numToCull] + pool.conns.keepIf((pc) => toCull.allIt(it.id != pc.id)) + for culled in toCull: + try: culled.conn.close() + except: discard "" + log().debug( + "Trimming pool size. Culled $# free connections. $# connections remaining." % + [$toCull.len, $pool.conns.len]) proc take*(pool: DbConnPool): tuple[id: int, conn: DbConn] = pool.maintain