#include <string.h>
#include <stdlib.h>
#include <curl/curl.h>
+#include <pthread.h>
#ifdef USE_SSL_THREAD_LOCKING
#include <openssl/crypto.h>
}
da_info->da_id = DA_INVALID_ID;
- da_info->tid = DA_INVALID_ID;
+ da_info->thread_id = 0;
memset(&(da_info->cb_info), 0x00, sizeof(da_cb_t));
da_info->is_cb_update = DA_FALSE;
da_info->http_info = http_info;
DA_MUTEX_LOCK(&mutex_da_info_list);
for (i = 0; i < DA_MAX_ID; i++) {
if (DA_NULL != da_info_list[i]) {
+ if (da_info_list[i]->thread_id) {
+ DA_LOGI("%lu is running. wait for the download thread.",
+ da_info_list[i]->thread_id);
+ pthread_join(da_info_list[i]->thread_id, NULL);
+ }
+
if (da_info_list[i]->req_info) {
__destroy_req_info(da_info_list[i]->req_info);
da_info_list[i]->req_info = DA_NULL;
da_info->file_info = DA_NULL;
}
da_info->da_id = DA_INVALID_ID;
- da_info->tid = DA_INVALID_ID;
+ da_info->thread_id = 0;
memset(&(da_info->cb_info), 0x00, sizeof(da_cb_t));
free(da_info);
da_info_list[id] = DA_NULL;