libcurl Manual curlmultiperform(3)
NAME
curlmultiperform - reads/writes available data from each
easy handle
SYNOPSIS
#include
CURLMcode curlmultiperform(CURLM *multihandle, int
*runninghandles);
DESCRIPTION
When the app thinks there's data available for the
multihandle, it should call this function to read/write
whatever there is to read or write right now.
curlmultiperform() returns as soon as the reads/writes are
done. This function does not require that there actually is
any data available for reading or that data can be written,
it can be called just in case. It will write the number of
handles that still transfer data in the second argument's
integer-pointer.
When you call curlmultiperform() and the amount of
runninghandles is changed from the previous call (or is
less than the amount of easy handles you've added to the
multi handle), you know that there is one or more transfers
less "running". You can then call curlmultiinforead(3) to
get information about each individual completed transfer,
and that returned info includes CURLcode and more.
RETURN VALUE
CURLMcode type, general libcurl multi interface error code.
If you receive CURLMCALMULTIPERFORM, this basically
means that you should call curlmultiperform again, before
you select() on more actions. You don't have to do it
immediately, but the return code means that libcurl may have
more data available to return or that there may be more data
to send off before it is "satisfied". Do note that
curlmultiperform(3) will return CURLMCALMULTIPERFORM
only when it wants to be called again immediately. When
things are fine and there is nothing immediate it wants
done, it'll return CURLMOK and you need to wait for
"action" and then call this function again.
NOTE that this only returns errors etc regarding the whole
multi stack. Problems still might have occurred on indivi-
dual transfers even when this function returns CURLMOK.
TYPICAL USAGE
Most applications will use curlmultifdset(3) to get the
multihandle's file descriptors, then it'll wait for action
on them using select(3) and as soon as one or more of them
libcurl 7.9.5 Last change: 1 March 2002 1
libcurl Manual curlmultiperform(3)
are ready, curlmultiperform(3) gets called.
SEE ALSO
curlmulticleanup(3), curlmultiinit(3),
curlmultifdset(3), curlmultiinforead(3), libcurl-
errors(3)
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
Availability SUNWcurl
Interface Stability Uncommitted
NOTES
Source for C-URL is available on http:/opensolaris.org.
libcurl 7.9.5 Last change: 1 March 2002 2
|