Pool currently throws Timeout::Error. Refactor to be ConnectionPool::TimeoutError > Timeout::Error so callers can distinguish between a pool timeout and a timeout from a pooled network client.
ConnectionPool::PoolShuttingDownError is a RuntimeError. Make it a subclass of ConnectionPool::Error.
Pool currently throws Timeout::Error. Refactor to be
ConnectionPool::TimeoutError > Timeout::Error
so callers can distinguish between a pool timeout and a timeout from a pooled network client.ConnectionPool::PoolShuttingDownError is a RuntimeError. Make it a subclass of ConnectionPool::Error.