Henrik,

I wrote an example using either sytemd or libuv main loop, it might eventually help you https://github.com/fulup-bzh/libcurl-mainloop

Fulup

On 02/04/2021 23:08, Henrik Holst via curl-library wrote:


Den fre 2 apr. 2021 kl 23:05 skrev Daniel Stenberg <dan...@haxx.se>:
On Fri, 2 Apr 2021, Henrik Holst via curl-library wrote:

> for (;;)
>  int ret = poll (fds, nfds, timeout);
>
>  if (ret == 0) {/* timeout */
>     curl_multi_socket_action (curlm, CURL_SOCKET_TIMEOUT, 0,
> &running_handles);
>  } else if (ret != -1) { /* events */
>    if (fds[0].revents != 0)
>      curl_multi_socket_action (curlm, fds[0].fd, fds[0].revents,
> &running_handles);
>    else if (fds[1]).revents != 0)
>      ...
>  }
> }

This is a typical example of an event loop that should rather use
curl_multi_perform() or perhaps even just curl_multi_poll(). And yes, for such
an event loop you want curl_multi_timeout (at least unless you use
curl_multi_poll).

If you use poll() then the multi socket API is probably the wrong choice. The
multi socket API is for event-based handling.
Okey, but the very same thing happens with epoll, or are we only defining event-based handling as say libevent, libev and libuv?
/HH

-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html



-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to