def drain!
      HotTub.logger.info "[HotTub] Draining pool #{@name}!" if HotTub.logger
      @mutex.synchronize do
        begin
          while clnt = @_pool.pop
            close_client(clnt)
          end
        ensure
          @_out.clear
          @_pool.clear
          @pid = Process.pid
          @cond.broadcast
        end
      end
      nil
    end
def drain!
      HotTub.logger.info "[HotTub] Draining pool #{@name}!" if HotTub.logger
      @mutex.synchronize do
        begin
          while clnt = @_pool.pop
            close_client(clnt)
          end
        ensure
          @_out.clear
          @_pool.clear
          @pid = Process.pid
          @cond.broadcast
        end
      end
      nil
    end
Drain the pool of all clients currently checked into the pool.
 After draining, wake all sleeping threads to allow repopulating the pool
 or if shutdown allow threads to quickly finish their work
 Its possible clients may be returned to the pool after cleaning