|
|
@ -143,6 +143,7 @@ int longpoll_thr_id; |
|
|
|
struct work_restart *work_restart = NULL; |
|
|
|
struct work_restart *work_restart = NULL; |
|
|
|
pthread_mutex_t time_lock; |
|
|
|
pthread_mutex_t time_lock; |
|
|
|
static pthread_mutex_t hash_lock; |
|
|
|
static pthread_mutex_t hash_lock; |
|
|
|
|
|
|
|
static pthread_mutex_t submit_lock; |
|
|
|
static pthread_mutex_t get_lock; |
|
|
|
static pthread_mutex_t get_lock; |
|
|
|
static double total_mhashes_done; |
|
|
|
static double total_mhashes_done; |
|
|
|
static struct timeval total_tv_start, total_tv_end; |
|
|
|
static struct timeval total_tv_start, total_tv_end; |
|
|
@ -467,6 +468,9 @@ static void *submit_thread(void *userdata) |
|
|
|
int failures = 0; |
|
|
|
int failures = 0; |
|
|
|
CURL *curl; |
|
|
|
CURL *curl; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* libcurl seems to be not thread safe so only submit one at a time! */ |
|
|
|
|
|
|
|
pthread_mutex_lock(&submit_lock); |
|
|
|
|
|
|
|
|
|
|
|
curl = curl_easy_init(); |
|
|
|
curl = curl_easy_init(); |
|
|
|
if (unlikely(!curl)) { |
|
|
|
if (unlikely(!curl)) { |
|
|
|
applog(LOG_ERR, "CURL initialization failed"); |
|
|
|
applog(LOG_ERR, "CURL initialization failed"); |
|
|
@ -490,6 +494,7 @@ static void *submit_thread(void *userdata) |
|
|
|
|
|
|
|
|
|
|
|
free(hexstr); |
|
|
|
free(hexstr); |
|
|
|
curl_easy_cleanup(curl); |
|
|
|
curl_easy_cleanup(curl); |
|
|
|
|
|
|
|
pthread_mutex_unlock(&submit_lock); |
|
|
|
return NULL; |
|
|
|
return NULL; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -1300,6 +1305,8 @@ int main (int argc, char *argv[]) |
|
|
|
return 1; |
|
|
|
return 1; |
|
|
|
if (unlikely(pthread_mutex_init(&hash_lock, NULL))) |
|
|
|
if (unlikely(pthread_mutex_init(&hash_lock, NULL))) |
|
|
|
return 1; |
|
|
|
return 1; |
|
|
|
|
|
|
|
if (unlikely(pthread_mutex_init(&submit_lock, NULL))) |
|
|
|
|
|
|
|
return 1; |
|
|
|
if (unlikely(pthread_mutex_init(&get_lock, NULL))) |
|
|
|
if (unlikely(pthread_mutex_init(&get_lock, NULL))) |
|
|
|
return 1; |
|
|
|
return 1; |
|
|
|
|
|
|
|
|
|
|
|