efl_net_dialer_http: NULL-ify thread pointer when it's gone.

on thread cancel and end, we should nullify the pointer if it was
still set.
This commit is contained in:
Gustavo Sverzut Barbieri 2016-11-10 00:05:49 -02:00
parent 9ad35a6fa2
commit 7917fa4ebf
1 changed files with 10 additions and 2 deletions

View File

@ -1308,12 +1308,17 @@ _efl_net_dialer_http_libproxy_context_free(Efl_Net_Dialer_Http_Libproxy_Context
}
static void
_efl_net_dialer_http_libproxy_end(void *data, Ecore_Thread *thread EINA_UNUSED)
_efl_net_dialer_http_libproxy_end(void *data, Ecore_Thread *thread)
{
Efl_Net_Dialer_Http_Libproxy_Context *ctx = data;
Eo *o = ctx->o;
Efl_Net_Dialer_Http_Data *pd = efl_data_scope_get(o, MY_CLASS);
EINA_SAFETY_ON_NULL_RETURN(pd);
if (pd->libproxy_thread == thread)
pd->libproxy_thread = NULL;
if (ctx->proxy)
{
CURLcode r = curl_easy_setopt(pd->easy, CURLOPT_PROXY, ctx->proxy);
@ -1364,7 +1369,10 @@ _efl_net_dialer_http_efl_net_dialer_dial(Eo *o, Efl_Net_Dialer_Http_Data *pd, co
Efl_Net_Dialer_Http_Libproxy_Context *ctx;
if (pd->libproxy_thread)
ecore_thread_cancel(pd->libproxy_thread);
{
ecore_thread_cancel(pd->libproxy_thread);
pd->libproxy_thread = NULL;
}
ctx = calloc(1, sizeof(Efl_Net_Dialer_Http_Libproxy_Context));
EINA_SAFETY_ON_NULL_RETURN_VAL(ctx, ENOMEM);