Example #1
0
    def __init__(self, maxconnects, qsize=0, **kwargs):
        self._multi = Multi(**kwargs)
        self._multi.maxconnects = maxconnects
        # TODO: fix bug with pipelining Pool not work
        self._multi.pipelining = 0

        self._queue = Queue(qsize)
        self._size = maxconnects

        self._data = {}

        # registry curl, sockets, event bitmask
        self._registry = {}  # key is curl, value is (socket, event bitmask)

        def socket_cb(curl, socket, event):
            self._registry[curl] = (socket, event)

        # TODO: timer
        def timer_cb(m, timeout):
            if timeout == 0:
                code, running = m.socket_action(const.CURL_SOCKET_TIMEOUT, 0)

        self._multi.socketfunction = socket_cb
        self._multi.timerfunction = timer_cb

        super(Pool, self).__init__()
Example #2
0
 def wrap(multi, timeout, userp):
     func(Multi(multi), timeout)
     return 0