From a5476338b16f1242d34c9d6e47a22fc36066ce2a Mon Sep 17 00:00:00 2001 From: "Brian J. Cardiff" Date: Wed, 19 Jul 2023 22:37:34 -0300 Subject: [PATCH] Less state, less bugs --- src/db/pool.cr | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/db/pool.cr b/src/db/pool.cr index 9c77993..757e4e3 100644 --- a/src/db/pool.cr +++ b/src/db/pool.cr @@ -57,8 +57,6 @@ module DB # communicate that a connection is available for checkout @availability_channel : Channel(Nil) - # signal how many existing connections are waited for - @waiting_resource : Int32 # global pool mutex @mutex : Mutex @@ -82,7 +80,6 @@ module DB @retry_delay = pool_options.retry_delay @availability_channel = Channel(Nil).new - @waiting_resource = 0 @inflight = 0 @mutex = Mutex.new @@ -284,25 +281,13 @@ module DB end private def wait_for_available - sync_inc_waiting_resource - select when @availability_channel.receive - sync_dec_waiting_resource when timeout(@checkout_timeout.seconds) - sync_dec_waiting_resource raise DB::PoolTimeout.new("Could not check out a connection in #{@checkout_timeout} seconds") end end - private def sync_inc_waiting_resource - sync { @waiting_resource += 1 } - end - - private def sync_dec_waiting_resource - sync { @waiting_resource -= 1 } - end - private def sync @mutex.lock begin