Commit c1a06d85 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

CURLOPT_PROGRESSFUNCTION is really not a good idea when using the multi

interface
parent 53b5fdbe
Loading
Loading
Loading
Loading
+10 −5
Original line number Original line Diff line number Diff line
@@ -169,11 +169,16 @@ added in 7.12.3)
.IP CURLOPT_PROGRESSFUNCTION
.IP CURLOPT_PROGRESSFUNCTION
Function pointer that should match the \fIcurl_progress_callback\fP prototype
Function pointer that should match the \fIcurl_progress_callback\fP prototype
found in \fI<curl/curl.h>\fP. This function gets called by libcurl instead of
found in \fI<curl/curl.h>\fP. This function gets called by libcurl instead of
its internal equivalent with a frequent interval during data transfer.
its internal equivalent with a frequent interval during data transfer (roughly
Unknown/unused argument values will be set to zero (like if you only download
once per second).  Unknown/unused argument values pass to the callback will be
data, the upload size will remain 0). Returning a non-zero value from this
set to zero (like if you only download data, the upload size will remain
callback will cause libcurl to abort the transfer and return
0). Returning a non-zero value from this callback will cause libcurl to abort
\fICURLE_ABORTED_BY_CALLBACK\fP.
the transfer and return \fICURLE_ABORTED_BY_CALLBACK\fP.

If you transfer data with the multi interface, this function will not be
called during periods of idleness unless you call the appropriate libcurl
function that performs transfers. Usage of the \fBCURLOPT_PROGRESSFUNCTION\fP
callback is not recommended when using the multi interface.


\fICURLOPT_NOPROGRESS\fP must be set to FALSE to make this function actually
\fICURLOPT_NOPROGRESS\fP must be set to FALSE to make this function actually
get called.
get called.