| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- .\" generated by cd2nroff 0.1 from curl_multi_wakeup.md
- .TH curl_multi_wakeup 3 "2025-01-17" libcurl
- .SH NAME
- curl_multi_wakeup \- wake up a sleeping curl_multi_poll call
- .SH SYNOPSIS
- .nf
- #include <curl/curl.h>
- CURLMcode curl_multi_wakeup(CURLM *multi_handle);
- .fi
- .SH DESCRIPTION
- This function can be called from any thread and it wakes up a sleeping
- \fIcurl_multi_poll(3)\fP call that is currently (or is about to be) waiting
- for activity or a timeout.
- If the function is called when there is no \fIcurl_multi_poll(3)\fP call, it
- causes the next call to return immediately.
- Calling this function only guarantees to wake up the current (or the next if
- there is no current) \fIcurl_multi_poll(3)\fP call, which means it is possible
- that multiple calls to this function wake up the same waiting operation.
- This function has no effect on \fIcurl_multi_wait(3)\fP calls.
- .SH PROTOCOLS
- This functionality affects all supported protocols
- .SH EXAMPLE
- .nf
- extern int time_to_die(void);
- extern int set_something_to_signal_thread_1_to_exit(void);
- extern int decide_to_stop_thread1();
- int main(void)
- {
- CURL *easy;
- CURLM *multi;
- int still_running;
- /* add the individual easy handle */
- curl_multi_add_handle(multi, easy);
- /* this is thread 1 */
- do {
- CURLMcode mc;
- int numfds;
- mc = curl_multi_perform(multi, &still_running);
- if(mc == CURLM_OK) {
- /* wait for activity, timeout or wakeup */
- mc = curl_multi_poll(multi, NULL, 0, 10000, &numfds);
- }
- if(time_to_die())
- return 1;
- } while(still_running);
- curl_multi_remove_handle(multi, easy);
- /* this is thread 2 */
- if(decide_to_stop_thread1()) {
- set_something_to_signal_thread_1_to_exit();
- curl_multi_wakeup(multi);
- }
- }
- .fi
- .SH AVAILABILITY
- Added in curl 7.68.0
- .SH RETURN VALUE
- CURLMcode type, general libcurl multi interface error code.
- .SH SEE ALSO
- .BR curl_multi_poll (3),
- .BR curl_multi_wait (3)
|