code: def acquire(self) -> Connection:
          '''Register and return a connection.
  
          Coroutine.
          '''
          assert not self._closed
  
          yield from self._condition.acquire()
  
          while True:
              if self.ready:
                  connection = self.ready.pop()
                  break
              elif len(self.busy) < self.max_connections:
                  connection = self._connection_factory()
                  break
              else:
                  yield from self._condition.wait()
  
          self.busy.add(connection)
          self._condition.release()
  
          return connectiof acquire(self) -> Connection:
          '''Register and return a connection.
  
          Coroutine.
          '''
          assert not self._closed
  
          yield from self._condition.acquire()
  
          while True:
              if self.ready:
                  connection = self.ready.pop()
                  break
              elif len(self.busy) < self.max_connections:
                  connection = self._connection_factory()
                  break
              else:
                  yield from self._condition.wait()
  
          self.busy.add(connection)
          self._condition.release()
  
          return connection
docs: Register and return a connection.
  
          Coroutine.