Sortix cross-volatile manual
This manual documents Sortix cross-volatile. You can instead view this document in the latest official manual.
curl_multi_wakeup(3) | Library Functions Manual | curl_multi_wakeup(3) |
NAME
curl_multi_wakeup - wake up a sleeping curl_multi_poll callDESCRIPTION
This function can be called from any thread and it wakes up a sleeping curl_multi_poll(3) call that is currently (or is about to be) waiting for activity or a timeout.PROTOCOLS
This functionality affects all supported protocolsEXAMPLE
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);
}
}
AVAILABILITY
Added in curl 7.68.0RETURN VALUE
CURLMcode type, general libcurl multi interface error code.SEE ALSO
curl_multi_poll(3), curl_multi_wait(3)2024-11-23 | libcurl |