<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/curl.git, branch bagder/curl_multi_poll</title>
<subtitle>github.com: bagder/curl.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/'/>
<entry>
<title>curl_multi_poll: a sister to curl_multi_wait() that waits more</title>
<updated>2019-07-30T21:21:12+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-07-29T11:41:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=625f006cee8356eac743e5a577b3fd6e50390222'/>
<id>625f006cee8356eac743e5a577b3fd6e50390222</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>curl: remove outdated comment</title>
<updated>2019-07-30T21:19:03+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-07-30T15:48:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=62aa0ba91ab0ede286cb41eed0b215705a5b1c90'/>
<id>62aa0ba91ab0ede286cb41eed0b215705a5b1c90</id>
<content type='text'>
Turned bad with commit b8894085000

Reported-by: niallor on github
Fixes #4172
Closes #4173
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Turned bad with commit b8894085000

Reported-by: niallor on github
Fixes #4172
Closes #4173
</pre>
</div>
</content>
</entry>
<entry>
<title>cleanup: remove the 'numsocks' argument used in many places</title>
<updated>2019-07-30T21:16:44+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-07-30T09:02:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=a55faf33d4b868c8e8173e7aabfe1e286a1a7658'/>
<id>a55faf33d4b868c8e8173e7aabfe1e286a1a7658</id>
<content type='text'>
It was used (intended) to pass in the size of the 'socks' array that is
also passed to these functions, but was rarely actually checked/used and
the array is defined to a fixed size of MAX_SOCKSPEREASYHANDLE entries
that should be used instead.

Closes #4169
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It was used (intended) to pass in the size of the 'socks' array that is
also passed to these functions, but was rarely actually checked/used and
the array is defined to a fixed size of MAX_SOCKSPEREASYHANDLE entries
that should be used instead.

Closes #4169
</pre>
</div>
</content>
</entry>
<entry>
<title>readwrite_data: repair setting the TIMER_STARTTRANSFER stamp</title>
<updated>2019-07-30T21:07:56+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-07-29T10:49:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=cb542ac4d085e9446a9dfc6632fad9a851b507fe'/>
<id>cb542ac4d085e9446a9dfc6632fad9a851b507fe</id>
<content type='text'>
Regression, broken in commit 65eb65fde64bd5f (curl 7.64.1)

Reported-by: Jonathan Cardoso Machado
Assisted-by: Jay Satiro

Fixes #4136
Closes #4162
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Regression, broken in commit 65eb65fde64bd5f (curl 7.64.1)

Reported-by: Jonathan Cardoso Machado
Assisted-by: Jay Satiro

Fixes #4136
Closes #4162
</pre>
</div>
</content>
</entry>
<entry>
<title>mailmap: Amit Katyal</title>
<updated>2019-07-30T10:51:55+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-07-30T10:51:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=cb46b193f18d67c92fc30e91171719ecbf666816'/>
<id>cb46b193f18d67c92fc30e91171719ecbf666816</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>asyn-thread: removed unused variable</title>
<updated>2019-07-30T08:29:54+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-07-30T08:29:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=041690aadb1357775ff06c5bf827a98585627c76'/>
<id>041690aadb1357775ff06c5bf827a98585627c76</id>
<content type='text'>
Follow-up to eb9a604f. Mistake caused by me when I edited the commit
before push...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Follow-up to eb9a604f. Mistake caused by me when I edited the commit
before push...
</pre>
</div>
</content>
</entry>
<entry>
<title>RELEASE-NOTES: synced</title>
<updated>2019-07-30T07:28:44+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-07-30T07:28:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=964bcfe8611814e88beb8421c9835254a897e581'/>
<id>964bcfe8611814e88beb8421c9835254a897e581</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>asyn-thread: create a socketpair to wait on</title>
<updated>2019-07-30T06:27:30+00:00</updated>
<author>
<name>amkatyal</name>
<email>amkatyal@cisco.com</email>
</author>
<published>2019-07-26T15:58:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=eb9a604f8d7db859555adc0ddacdabd1ed986106'/>
<id>eb9a604f8d7db859555adc0ddacdabd1ed986106</id>
<content type='text'>
Closes #4157
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #4157
</pre>
</div>
</content>
</entry>
<entry>
<title>curl: cap the maximum allowed values for retry time arguments</title>
<updated>2019-07-30T06:17:01+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-07-29T20:10:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=db0a0dfb0eb41d39273b0590b992df58f38b9a4d'/>
<id>db0a0dfb0eb41d39273b0590b992df58f38b9a4d</id>
<content type='text'>
... to avoid integer overflows later when multiplying with 1000 to
convert seconds to milliseconds.

Added test 1269 to verify.

Reported-by: Jason Lee
Closes #4166
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
... to avoid integer overflows later when multiplying with 1000 to
convert seconds to milliseconds.

Added test 1269 to verify.

Reported-by: Jason Lee
Closes #4166
</pre>
</div>
</content>
</entry>
<entry>
<title>progress: reset download/uploaded counter</title>
<updated>2019-07-29T20:31:30+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-07-29T10:16:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=d23e87d551d2d99201d7eb275029b6f0660f5136'/>
<id>d23e87d551d2d99201d7eb275029b6f0660f5136</id>
<content type='text'>
... to make CURLOPT_MAX_RECV_SPEED_LARGE and
CURLOPT_MAX_SEND_SPEED_LARGE work correctly on subsequent transfers that
reuse the same handle.

Fixed-by: Ironbars13 on github
Fixes #4084
Closes #4161
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
... to make CURLOPT_MAX_RECV_SPEED_LARGE and
CURLOPT_MAX_SEND_SPEED_LARGE work correctly on subsequent transfers that
reuse the same handle.

Fixed-by: Ironbars13 on github
Fixes #4084
Closes #4161
</pre>
</div>
</content>
</entry>
</feed>
