examples: remove recursive calls to curl_multi_socket_action

From within the timer callbacks. Recursive is problematic for several
reasons. They should still work, but this way the examples and the
documentation becomes simpler. I don't think we need to encourage
recursive calls.

Discussed in #3537
Closes #3601
This commit is contained in:
Daniel Stenberg 2019-02-22 13:44:41 +01:00
parent 42b30ee8f2
commit 47e540df8f
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
4 changed files with 22 additions and 35 deletions

View file

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2019, 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
@ -152,23 +152,15 @@ static int multi_timer_cb(CURLM *multi _Unused, long timeout_ms, GlobalInfo *g)
timeout.tv_usec = (timeout_ms%1000)*1000;
fprintf(MSG_OUT, "multi_timer_cb: Setting timeout to %ld ms\n", timeout_ms);
/* TODO
*
* if timeout_ms is 0, call curl_multi_socket_action() at once!
*
/*
* if timeout_ms is -1, just delete the timer
*
* for all other values of timeout_ms, this should set or *update*
* the timer to the new value
* For all other values of timeout_ms, this should set or *update* the timer
* to the new value
*/
if(timeout_ms == 0) {
rc = curl_multi_socket_action(g->multi,
CURL_SOCKET_TIMEOUT, 0, &g->still_running);
mcode_or_die("multi_timer_cb: curl_multi_socket_action", rc);
}
else if(timeout_ms == -1)
if(timeout_ms == -1)
evtimer_del(&g->timer_event);
else
else /* includes timeout zero */
evtimer_add(&g->timer_event, &timeout);
return 0;
}