# File src/DbPool.rb, line 138 def getConnection idleConn = nil #predeclare @classMutex.synchronize { callcc do |cont| idleConn = @pool.find do |conn| conn.status == :IDLE end if not idleConn @connectionFreed.wait(@classMutex) cont.call end end idleConn.status = :BUSY } if block_given? begin yield idleConn ensure idleConn.freeConnection end else return idleConn end end