diff --git a/smmapdfw/verify_worker/verify_worker.c b/smmapdfw/verify_worker/verify_worker.c index 18ce52b..869191c 100644 --- a/smmapdfw/verify_worker/verify_worker.c +++ b/smmapdfw/verify_worker/verify_worker.c @@ -445,6 +445,7 @@ int verify_work(void *handle, void *work_handle, char *input, char *output) { syslog(LOG_DEBUG, "verify (%p) verify_work: going to start worker thread, id=%d", vwh, vwh->id); + pthread_mutex_lock(vwh->result_mutex); err = pthread_create(&tid, NULL, &worker_thread, wt); if (-1 == err) { free(wt->input); @@ -453,7 +454,6 @@ int verify_work(void *handle, void *work_handle, char *input, char *output) { } syslog(LOG_DEBUG, "verify (%p) verify_work: waiting for result", vwh); - pthread_mutex_lock(vwh->result_mutex); ts.tv_sec = time(0) + vch->timeout_result; ts.tv_nsec = 0; err = pthread_cond_timedwait(vwh->result_cond, vwh->result_mutex, &ts);