curl / Mailing Lists / curl-library / Single Mail


Pause timeout timers while processing data?

From: Alex Crichton via curl-library <>
Date: Wed, 3 Oct 2018 09:44:15 -0700

Hello! We've run into an issue [1] in rust-lang/cargo's usage of curl
where timeouts are triggering when the filesystem is quite slow. I
believe the cause for this is that we have a multi socket interface
and whenever a transfer finishes we synchronously decompress it and
write it out to the filesystem. It looks like the timeout timers keep
running while we're doing filesystem operations, which means the next
time we come back to check the socket states we get a timeout error.

To that end, I was curious to clarify a bit about this usage:

1. Is there a way to across-the-board pause timeouts? For example just
before we do synchronous operations we could pause everything and then
unpause it soon afterwards.

2. Failing a "one method" solution, would `curl_easy_pause` work for
this purpose? If we paused everything just after we did our network
activity and repaused it when it was finished, would `curl_easy_pause`
also pause timeout timers?

3. And failing those two solutions, is this simply a case where the
progress callback is recommended to implement custom timeout


Received on 2018-10-03