aboutsummaryrefslogtreecommitdiff
path: root/docs/libcurl/curl_multi_wait.3
diff options
context:
space:
mode:
Diffstat (limited to 'docs/libcurl/curl_multi_wait.3')
-rw-r--r--docs/libcurl/curl_multi_wait.3128
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)