Beispiel #1
0
    def release(self, conn):
        """
        Release a connection back to the pool.

        :param gremlinclient.connection.Connection: The connection to be
            released
        """
        future = self._future_class()
        if self.size <= self.maxsize:
            if conn.closed:
                # conn has been closed
                pool_logger.info("Released closed connection: {}".format(conn))
                self._acquired.remove(conn)
                conn = None
            elif self._waiters:
                waiter = self._waiters.popleft()
                waiter.set_result(conn)
                pool_logger.debug(
                    "Completeing future with connection: {}".format(conn))
            else:
                self._pool.append(conn)
                self._acquired.remove(conn)
            future.set_result(None)
        else:
            future_conn = conn.close()
            future_conn.add_done_callback(
                lambda f: future.set_result(f.result()))
        return future
Beispiel #2
0
    def release(self, conn):
        """
        Release a connection back to the pool.

        :param gremlinclient.connection.Connection: The connection to be
            released
        """
        future = self._future_class()
        if self.size <= self.maxsize:
            if conn.closed:
                # conn has been closed
                pool_logger.info(
                    "Released closed connection: {}".format(conn))
                self._acquired.remove(conn)
                conn = None
            elif self._waiters:
                waiter = self._waiters.popleft()
                waiter.set_result(conn)
                pool_logger.debug(
                    "Completeing future with connection: {}".format(conn))
            else:
                self._pool.append(conn)
                self._acquired.remove(conn)
            future.set_result(None)
        else:
            future_conn = conn.close()
            future_conn.add_done_callback(
                lambda f: future.set_result(f.result()))
        return future
Beispiel #3
0
 def _close(self):
     to_close = []
     while self.pool:
         conn = self.pool.popleft()
         to_close.append(conn.close())
     yield from asyncio.gather(*to_close, loop=self._loop)
     while self._waiters:
         f = self._waiters.popleft()
         f.cancel()
     self._graph = None
     self._closed = True
     pool_logger.info("Connection pool {} has been closed".format(self))
Beispiel #4
0
 def close(self):
     """
     Close pool
     """
     while self.pool:
         conn = self.pool.popleft()
         conn.close()
     while self._waiters:
         f = self._waiters.popleft()
         f.cancel()
     self._graph = None
     self._closed = True
     pool_logger.info("Connection pool {} has been closed".format(self))
Beispiel #5
0
 def _close(self):
     to_close = []
     while self.pool:
         conn = self.pool.popleft()
         to_close.append(conn.close())
     yield from asyncio.gather(*to_close, loop=self._loop)
     while self._waiters:
         f = self._waiters.popleft()
         f.cancel()
     self._graph = None
     self._closed = True
     pool_logger.info(
         "Connection pool {} has been closed".format(self))
Beispiel #6
0
 def close(self):
     """
     Close pool
     """
     while self.pool:
         conn = self.pool.popleft()
         conn.close()
     while self._waiters:
         f = self._waiters.popleft()
         f.cancel()
     self._graph = None
     self._closed = True
     pool_logger.info(
         "Connection pool {} has been closed".format(self))