curl / Mailing Lists / curl-library / Single Mail

curl-library

epoll something (Re: curl-library Digest, Vol 143, Issue 18)

From: Daniel Stenberg <daniel_at_haxx.se>
Date: Sun, 23 Jul 2017 17:06:23 +0200 (CEST)

On Fri, 21 Jul 2017, Tushar Pathare via curl-library wrote:

> Thank you for the response, Daniel.

Please switch off digest-mode for the mailing list before trying to keep a
conversation on it! We don't want to see you quote a busload of non-related
messages and we prefer a mail subject that tells what the thread is about!

>> What exactly happens with the failing requests? And is there a threshold
>> somewhere when the errors start to occur?
>
> There is not any specific threshold for the request drop. Not getting any
> error in the log. Can you suggest few point's where I can add logs for error
> identification?

libcurl returns error codes for every function and every failed request. You
should check those. Unless you overload the target server(s), requests are not
expected to fail at all.

> Thread has following properties:
> - one epoll fd
> - one multi curl handle
> - 50 HTTP request added in above multi handle.
> - number of iterations

Just make sure that you don't ever use the handles in more than one thread at
a time.

> If I don't add curl_multi_socket_action() after curl_multi_perform(), then
> my request are not getting success(epoll_wait() get timedout and not getting
> any single event). Timeout is very important in my poc. I don't want to wait
> for all responses if the timeout occurs.

If you want the event-based API then you should *only* use
*multi_socket_action() and *not* *multi_perform(). Any mixed use with these in
the same transfer loop will cause you unexpected behaviors and you should
consider that a flawed program.

I presume that's your biggest problem in your code. If you want to use epoll,
use *multi_socket_action(). If you want to use select, use *multi_perform().

libcurl will handle timeouts fine independently of which of these methods you
pick.

-- 
  / daniel.haxx.se
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html
Received on 2017-07-23