def reap!
      HotTub.logger.info "[HotTub] Reaping pool #{@name}!" if HotTub.log_trace?
      while !@shutdown
        reaped = nil
        @mutex.synchronize do
          begin
            if _reap?
              if _dead_clients?
                reaped = @_out.select { |clnt, thrd| !thrd.alive? }.keys
                @_out.delete_if { |k,v| reaped.include? k }
              else
                reaped = [@_pool.shift]
              end
            else
              reaped = nil
            end
          ensure
            @cond.signal
          end
        end
        if reaped
          reaped.each do |clnt|
            close_client(clnt)
          end
        else
          break
        end
      end
      nil
    end
def reap!
      HotTub.logger.info "[HotTub] Reaping pool #{@name}!" if HotTub.log_trace?
      while !@shutdown
        reaped = nil
        @mutex.synchronize do
          begin
            if _reap?
              if _dead_clients?
                reaped = @_out.select { |clnt, thrd| !thrd.alive? }.keys
                @_out.delete_if { |k,v| reaped.include? k }
              else
                reaped = [@_pool.shift]
              end
            else
              reaped = nil
            end
          ensure
            @cond.signal
          end
        end
        if reaped
          reaped.each do |clnt|
            close_client(clnt)
          end
        else
          break
        end
      end
      nil
    end
Remove and close extra clients
 Releases mutex each iteration because
 reaping is a low priority action