ecore: let's try another approach thanks to Guillaume Friloux.
SVN revision: 77533
This commit is contained in:
parent
d308248e4c
commit
433803e3dc
|
@ -56,7 +56,7 @@ static CURLM *_curlm = NULL;
|
|||
static int _init_count = 0;
|
||||
static Ecore_Timer *_curl_timer = NULL;
|
||||
static Eina_Bool pipelining = EINA_FALSE;
|
||||
|
||||
Ecore_Idler *_curl_idler;
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -91,6 +91,7 @@ ecore_con_url_init(void)
|
|||
|
||||
_curl_timer = ecore_timer_add((double)ms / 1000, _ecore_con_url_timer, NULL);
|
||||
ecore_timer_freeze(_curl_timer);
|
||||
_curl_idler = NULL;
|
||||
|
||||
return _init_count;
|
||||
#else
|
||||
|
@ -114,6 +115,9 @@ ecore_con_url_shutdown(void)
|
|||
_curl_timer = NULL;
|
||||
}
|
||||
|
||||
if (_curl_idler) ecore_idler_del(_curl_idler);
|
||||
_curl_idler = NULL;
|
||||
|
||||
EINA_LIST_FREE(_url_con_list, url_con)
|
||||
ecore_con_url_free(url_con);
|
||||
EINA_LIST_FREE(_fd_hd_list, fd_handler)
|
||||
|
@ -1335,7 +1339,7 @@ _ecore_con_url_event_url_complete(Ecore_Con_Url *url_con, CURLMsg *curlmsg)
|
|||
|
||||
e->status = status;
|
||||
e->url_con = url_con;
|
||||
|
||||
|
||||
url_con->event_count++;
|
||||
ecore_event_add(ECORE_CON_EVENT_URL_COMPLETE, e, (Ecore_End_Cb)_ecore_con_event_url_free, url_con);
|
||||
}
|
||||
|
@ -1549,6 +1553,9 @@ _ecore_con_url_fd_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler __
|
|||
|
||||
ecore_timer_interval_set(_curl_timer, (double)ms / 1000);
|
||||
|
||||
if (!_curl_timer)
|
||||
_curl_idler = ecore_idler_add(_ecore_con_url_timer, NULL);
|
||||
|
||||
return ECORE_CALLBACK_CANCEL;
|
||||
}
|
||||
|
||||
|
@ -1611,6 +1618,8 @@ _ecore_con_url_timer(void *data __UNUSED__)
|
|||
ERR("curl_multi_perform() failed: %s", curl_multi_strerror(ret));
|
||||
_ecore_con_url_curl_clear();
|
||||
ecore_timer_freeze(_curl_timer);
|
||||
if (_curl_idler) ecore_idler_del(_curl_idler);
|
||||
_curl_idler = NULL;
|
||||
}
|
||||
|
||||
if (still_running)
|
||||
|
@ -1628,6 +1637,8 @@ _ecore_con_url_timer(void *data __UNUSED__)
|
|||
_ecore_con_url_info_read();
|
||||
_ecore_con_url_curl_clear();
|
||||
ecore_timer_freeze(_curl_timer);
|
||||
if (_curl_idler) ecore_idler_del(_curl_idler);
|
||||
_curl_idler = NULL;
|
||||
}
|
||||
|
||||
return ECORE_CALLBACK_RENEW;
|
||||
|
|
Loading…
Reference in New Issue