diff options
author | Daniel Stenberg <daniel@haxx.se> | 2019-07-29 13:41:00 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-08-06 09:33:29 +0200 |
commit | 02346abc32a3995299fa9c2f35b9f0a1d091b045 (patch) | |
tree | de504a328c326fc2ebef7265ddf4de7456fd56be /lib/multiif.h | |
parent | cee7639b790f29113759f69c4a955c2ead8bff31 (diff) | |
download | curl-02346abc32a3995299fa9c2f35b9f0a1d091b045.tar.gz |
curl_multi_poll: a sister to curl_multi_wait() that waits more
Repeatedly we see problems where using curl_multi_wait() is difficult or
just awkward because if it has no file descriptor to wait for
internally, it returns immediately and leaves it to the caller to wait
for a small amount of time in order to avoid occasional busy-looping.
This is often missed or misunderstood, leading to underperforming
applications.
This change introduces curl_multi_poll() as a replacement drop-in
function that accepts the exact same set of arguments. This function
works identically to curl_multi_wait() - EXCEPT - for the case when
there's nothing to wait for internally, as then this function will by
itself wait for a "suitable" short time before it returns. This
effectiely avoids all risks of busy-looping and should also make it less
likely that apps "over-wait".
This also changes the curl tool to use this funtion internally when
doing parallel transfers and changes curl_easy_perform() to use it
internally.
Closes #4163
Diffstat (limited to 'lib/multiif.h')
-rw-r--r-- | lib/multiif.h | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/lib/multiif.h b/lib/multiif.h index 57b6145eb..0755a7cd2 100644 --- a/lib/multiif.h +++ b/lib/multiif.h @@ -89,11 +89,4 @@ CURLMcode Curl_multi_add_perform(struct Curl_multi *multi, struct Curl_easy *data, struct connectdata *conn); -CURLMcode Curl_multi_wait(struct Curl_multi *multi, - struct curl_waitfd extra_fds[], - unsigned int extra_nfds, - int timeout_ms, - int *ret, - bool *gotsocket); /* if any socket was checked */ - #endif /* HEADER_CURL_MULTIIF_H */ |