aboutsummaryrefslogtreecommitdiff
path: root/src/core/taskq.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2018-07-12 17:41:33 -0700
committerGarrett D'Amore <garrett@damore.org>2018-07-16 10:06:55 -0700
commit4b75793ad60a228db727f76caa10615e4a14899b (patch)
treecb5b6478ce3417d185b1a290b420d716ddfc0293 /src/core/taskq.c
parentb44e20c80c936a29bfeaf964ec94bc62ac0386f5 (diff)
downloadnng-4b75793ad60a228db727f76caa10615e4a14899b.tar.gz
nng-4b75793ad60a228db727f76caa10615e4a14899b.tar.bz2
nng-4b75793ad60a228db727f76caa10615e4a14899b.zip
fixes #589 tsan found races
Diffstat (limited to 'src/core/taskq.c')
-rw-r--r--src/core/taskq.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/taskq.c b/src/core/taskq.c
index 82a7456b..9dde6981 100644
--- a/src/core/taskq.c
+++ b/src/core/taskq.c
@@ -51,8 +51,11 @@ nni_taskq_thread(void *self)
if ((task = nni_list_first(&tq->tq_tasks)) != NULL) {
bool reap;
+ nni_mtx_lock(&task->task_mtx);
nni_list_remove(&tq->tq_tasks, task);
task->task_thr = &thr->tqt_thread;
+ nni_mtx_unlock(&task->task_mtx);
+
nni_mtx_unlock(&tq->tq_mtx);
task->task_cb(task->task_arg);