diff options
Diffstat (limited to 'docs/libcurl/curl_multi_wait.3')
-rw-r--r-- | docs/libcurl/curl_multi_wait.3 | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/docs/libcurl/curl_multi_wait.3 b/docs/libcurl/curl_multi_wait.3 deleted file mode 100644 index 565fdb8de..000000000 --- a/docs/libcurl/curl_multi_wait.3 +++ /dev/null @@ -1,128 +0,0 @@ -.\" ************************************************************************** -.\" * _ _ ____ _ -.\" * Project ___| | | | _ \| | -.\" * / __| | | | |_) | | -.\" * | (__| |_| | _ <| |___ -.\" * \___|\___/|_| \_\_____| -.\" * -.\" * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -.\" * -.\" * This software is licensed as described in the file COPYING, which -.\" * you should have received as part of this distribution. The terms -.\" * are also available at https://curl.se/docs/copyright.html. -.\" * -.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell -.\" * copies of the Software, and permit persons to whom the Software is -.\" * furnished to do so, under the terms of the COPYING file. -.\" * -.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -.\" * KIND, either express or implied. -.\" * -.\" * SPDX-License-Identifier: curl -.\" * -.\" ************************************************************************** -.TH curl_multi_wait 3 "12 Jul 2012" "libcurl" "libcurl" -.SH NAME -curl_multi_wait - polls on all easy handles in a multi handle -.SH SYNOPSIS -.nf -#include <curl/curl.h> - -CURLMcode curl_multi_wait(CURLM *multi_handle, - struct curl_waitfd extra_fds[], - unsigned int extra_nfds, - int timeout_ms, - int *numfds); -.ad -.SH DESCRIPTION -\fIcurl_multi_wait(3)\fP polls all file descriptors used by the curl easy -handles contained in the given multi handle set. It blocks until activity is -detected on at least one of the handles or \fItimeout_ms\fP has passed. -Alternatively, if the multi handle has a pending internal timeout that has a -shorter expiry time than \fItimeout_ms\fP, that shorter time is be used -instead to make sure timeout accuracy is reasonably kept. - -The calling application may pass additional \fIcurl_waitfd\fP structures which -are similar to \fIpoll(2)\fP's \fIpollfd\fP structure to be waited on in the -same call. - -On completion, if \fInumfds\fP is non-NULL, it gets populated with the total -number of file descriptors on which interesting events occurred. This number -can include both libcurl internal descriptors as well as descriptors provided -in \fIextra_fds\fP. - -If no extra file descriptors are provided and libcurl has no file descriptor -to offer to wait for, this function returns immediately. (Consider using -\fIcurl_multi_poll(3)\fP to avoid this behavior.) - -This function is encouraged to be used instead of select(3) when using the -multi interface to allow applications to easier circumvent the common problem -with 1024 maximum file descriptors. -.SH curl_waitfd -.nf -struct curl_waitfd { - curl_socket_t fd; - short events; - short revents; -}; -.fi -.IP CURL_WAIT_POLLIN -Bit flag to \fIcurl_waitfd.events\fP indicating the socket should poll on read -events such as new data received. -.IP CURL_WAIT_POLLPRI -Bit flag to \fIcurl_waitfd.events\fP indicating the socket should poll on high -priority read events such as out of band data. -.IP CURL_WAIT_POLLOUT -Bit flag to \fIcurl_waitfd.events\fP indicating the socket should poll on -write 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 AVAILABILITY -This function was added in libcurl 7.28.0. -.SH RETURN VALUE -CURLMcode type, general libcurl multi interface error code. See -\fIlibcurl-errors(3)\fP -.SH "SEE ALSO" -.BR curl_multi_fdset (3), -.BR curl_multi_perform (3), -.BR curl_multi_poll (3) |