#include "mapzen_util.h"
#define RESTCURL_USE_MULTI_CURL
+#define TIZEN_CFG_CURL_TIMEOUT 120
CURLM *__cm_handle;
pthread_t __CurlThread;
/* some servers don't like requests that are made without a user-agent field, so we provide one */
curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, "libcurl-agent/1.0");
+ /* Timeout for the entire request */
+ curl_easy_setopt(curl_handle, CURLOPT_TIMEOUT, TIZEN_CFG_CURL_TIMEOUT);
+
pMultiCurlArg->curl_handle = curl_handle;
pMultiCurlArg->req_type = type;
pMultiCurlArg->request_id = req_id;
static void *__curl_thread_handler(void *user_data)
{
- __thread_running_for_curlmulti = true;
+ //__thread_running_for_curlmulti = true;
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
#ifdef RESTCURL_USE_MULTI_CURL
}
}
- if (__thread_running_for_curlmulti && !__MultiCurlArgsRemain) {
- pthread_mutex_lock(&__curl_deliver_mutex);
+ pthread_mutex_lock(&__curl_deliver_mutex);
+ if (__thread_running_for_curlmulti && !__MultiCurlArgsRemain)
pthread_cond_wait(&__curl_delivered_cond, &__curl_deliver_mutex);
- pthread_mutex_unlock(&__curl_deliver_mutex);
- }
+ pthread_mutex_unlock(&__curl_deliver_mutex);
}
#else
int deinit_curl()
{
#ifdef RESTCURL_USE_MULTI_CURL
+ pthread_mutex_lock(&__curl_deliver_mutex);
__thread_running_for_curlmulti = false;
__MultiCurlArgsRemain = 0;
-
- pthread_mutex_lock(&__curl_deliver_mutex);
pthread_cond_signal(&__curl_delivered_cond);
pthread_mutex_unlock(&__curl_deliver_mutex);