~ubuntu-branches/ubuntu/lucid/curl/lucid-201101212007

« back to all changes in this revision

Viewing changes to docs/libcurl/libcurl-multi.html

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2007-05-16 15:16:54 UTC
  • mto: (3.1.1 lenny) (1.2.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 12.
  • Revision ID: james.westby@ubuntu.com-20070516151654-x9nkigtr2j0i8d0v
Tags: upstream-7.16.2
ImportĀ upstreamĀ versionĀ 7.16.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
61
61
<p class="level0"><a class="emphasis" href="./curl_multi_perform.html">curl_multi_perform(3)</a> stores the number of still running transfers in one of its input arguments, and by reading that you can figure out when all the transfers in the multi handles are done. 'done' does not mean successful. One or more of the transfers may have failed. Tracking when this number changes, you know when one or more transfers are done. 
62
62
<p class="level0">To get information about completed transfers, to figure out success or not and similar, <a class="emphasis" href="./curl_multi_info_read.html">curl_multi_info_read(3)</a> should be called. It can return a message about a current or previous transfer. Repeated invokes of the function get more messages until the message queue is empty. The information you receive there includes an easy handle pointer which you may use to identify which easy handle the information regards. 
63
63
<p class="level0">When all transfers in the multi stack are done, cleanup the multi handle with <a class="emphasis" href="./curl_multi_cleanup.html">curl_multi_cleanup(3)</a>. Be careful and please note that you <span Class="bold">MUST</span> invoke separate <a class="emphasis" href="./curl_easy_cleanup.html">curl_easy_cleanup(3)</a> calls on every single easy handle to clean them up properly. 
64
 
<p class="level0">If you want to re-use an easy handle that was added to the multi handle for transfer, you must first remove it from the multi stack and then re-add it again (possibly after having altered some options at your own choice). <p class="roffit">
 
64
<p class="level0">If you want to re-use an easy handle that was added to the multi handle for transfer, you must first remove it from the multi stack and then re-add it again (possibly after having altered some options at your own choice). <a name="MULTISOCKET"></a><h2 class="nroffsh">MULTI_SOCKET</h2>
 
65
<p class="level0">Since 7.16.0, the <a class="emphasis" href="./curl_multi_socket.html">curl_multi_socket(3)</a> function offers a way for applications to not only avoid being forced to use select(), but it also offers a much more high-performing API that will make a significant difference for applications using large numbers of simultaneous connections. 
 
66
<p class="level0"><a class="emphasis" href="./curl_multi_socket.html">curl_multi_socket(3)</a> (and <a class="emphasis" href="./curl_multi_socket_all.html">curl_multi_socket_all(3)</a>) is then used instead of <a class="emphasis" href="./curl_multi_perform.html">curl_multi_perform(3)</a>. <a name="BLOCKING"></a><h2 class="nroffsh">BLOCKING</h2>
 
67
<p class="level0">A few areas in the code are still using blocking code, even when used from the multi interface. While we certainly want and intend for these to get fixed in the future, you should be aware of the following current restrictions: 
 
68
<p class="level0">&nbsp;- Name resolves on non-windows unless c-ares is used &nbsp;- GnuTLS SSL connections &nbsp;- Active FTP connections &nbsp;- HTTP proxy CONNECT operations &nbsp;- SCP and SFTP connections &nbsp;- SFTP transfers &nbsp;- file:// transfers <p class="roffit">
65
69
 This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
66
70
</body></html>