curl_multi_wait.3: add example
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
.\" * | (__| |_| | _ <| |___
|
.\" * | (__| |_| | _ <| |___
|
||||||
.\" * \___|\___/|_| \_\_____|
|
.\" * \___|\___/|_| \_\_____|
|
||||||
.\" *
|
.\" *
|
||||||
.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
.\" *
|
.\" *
|
||||||
.\" * This software is licensed as described in the file COPYING, which
|
.\" * This software is licensed as described in the file COPYING, which
|
||||||
.\" * you should have received as part of this distribution. The terms
|
.\" * you should have received as part of this distribution. The terms
|
||||||
@@ -71,6 +71,48 @@ priority read events such as out of band data.
|
|||||||
.IP CURL_WAIT_POLLOUT
|
.IP CURL_WAIT_POLLOUT
|
||||||
Bit flag to curl_waitfd.events indicating the socket should poll on write
|
Bit flag to curl_waitfd.events indicating the socket should poll on write
|
||||||
events such as the socket being clear to write without blocking.
|
events such as the socket being clear to write without blocking.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
CURL *easy_handle;
|
||||||
|
CURLM *multi_handle;
|
||||||
|
|
||||||
|
/* add the individual easy handle */
|
||||||
|
curl_multi_add_handle(multi_handle, easy_handle);
|
||||||
|
|
||||||
|
do {
|
||||||
|
CURLMcode mc;
|
||||||
|
int numfds;
|
||||||
|
|
||||||
|
mc = curl_multi_perform(multi_handle, &still_running);
|
||||||
|
|
||||||
|
if(mc == CURLM_OK ) {
|
||||||
|
/* wait for activity, timeout or "nothing" */
|
||||||
|
mc = curl_multi_wait(multi_handle, NULL, 0, 1000, &numfds);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(mc != CURLM_OK) {
|
||||||
|
fprintf(stderr, "curl_multi failed, code %d.\n", mc);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 'numfds' being zero means either a timeout or no file descriptors to
|
||||||
|
wait for. Try timeout on first occurrence, then assume no file
|
||||||
|
descriptors and no file descriptors to wait for means wait for 100
|
||||||
|
milliseconds. */
|
||||||
|
|
||||||
|
if(!numfds) {
|
||||||
|
repeats++; /* count number of repeated zero numfds */
|
||||||
|
if(repeats > 1) {
|
||||||
|
WAITMS(100); /* sleep 100 milliseconds */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
repeats = 0;
|
||||||
|
|
||||||
|
} while(still_running);
|
||||||
|
|
||||||
|
curl_multi_remove_handle(multi_handle, easy_handle);
|
||||||
|
.fi
|
||||||
.SH RETURN VALUE
|
.SH RETURN VALUE
|
||||||
CURLMcode type, general libcurl multi interface error code. See
|
CURLMcode type, general libcurl multi interface error code. See
|
||||||
\fIlibcurl-errors(3)\fP
|
\fIlibcurl-errors(3)\fP
|
||||||
|
|||||||
Reference in New Issue
Block a user