ecore: let's try another approach thanks to Guillaume Friloux.

SVN revision: 77533
This commit is contained in:
Cedric BAIL 2012-10-05 13:07:14 +00:00
parent d308248e4c
commit 433803e3dc
1 changed files with 13 additions and 2 deletions

View File

@ -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;