Close all connections

        Return a :class:`~asyncio.Future` called once all connections
        have closed

def close(self):
        '''Close all connections

        Return a :class:`~asyncio.Future` called once all connections
        have closed
        '''
        if not self.closed:
            waiters = []
            queue = self._queue
            while queue.qsize():
                connection = queue.get_nowait()
                if connection:
                    closed = connection.close()
                    if closed:
                        waiters.append(closed)
            in_use = self._in_use_connections
            self._in_use_connections = set()
            for connection in in_use:
                if connection:
                    waiters.append(connection.close())
            self._closed = asyncio.gather(*waiters, loop=self._loop)
        return self._closed