code: def acquire(self):
          
          while self.size() == 0 or self.size() < self._minsize:
              _conn = yield from self._create_new_conn()
              if _conn is None:
                  break
              self._pool.put_nowait(_conn)
  
          conn = None
          while not conn:
              _conn = yield from self._pool.get()
              if _conn.reader.at_eof() or _conn.reader.exception():
                  self._do_close(_conn)
                  conn = yield from self._create_new_conn()
              else:
                  conn = _conn
  
          self._in_use.add(conn)
          return conn
docs: Acquire connection from the pool, or spawn new one
          if pool maxsize permits.
  
          :return: ``tuple`` (reader, writer)