diff --git a/src/network.c b/src/network.c index 1cae5ef..5e646cd 100644 --- a/src/network.c +++ b/src/network.c @@ -328,7 +328,9 @@ void transfer_blocking(CURL *curl) transfer.transferring = 1; curl_easy_setopt(curl, CURLOPT_PRIVATE, &transfer); + pthread_mutex_lock(&transfer_lock); CURLMcode res = curl_multi_add_handle(curl_multi, curl); + pthread_mutex_unlock(&transfer_lock); if(res > 0) { fprintf(stderr, "transfer_blocking(): %d, %s\n", @@ -343,7 +345,10 @@ void transfer_blocking(CURL *curl) void transfer_nonblocking(CURL *curl) { + pthread_mutex_lock(&transfer_lock); CURLMcode res = curl_multi_add_handle(curl_multi, curl); + pthread_mutex_unlock(&transfer_lock); + if(res > 0) { fprintf(stderr, "transfer_nonblocking(): %s\n", curl_multi_strerror(res));