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__()
def wrap(multi, timeout, userp): func(Multi(multi), timeout) return 0