X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=urcu%2Fworkqueue-fifo.h;h=a2bbd909fdb1ae3923c8743d155752dceb016802;hb=0a14cd14bb8de4385c133f5cec3c4ec06f41ee8b;hp=a3d1e72b2782a0afeeb6a438d64825b6a1d1c6cb;hpb=db9916c6618c4da50d5f2779af1640cab1ebcfed;p=urcu.git diff --git a/urcu/workqueue-fifo.h b/urcu/workqueue-fifo.h index a3d1e72..a2bbd90 100644 --- a/urcu/workqueue-fifo.h +++ b/urcu/workqueue-fifo.h @@ -366,7 +366,8 @@ enum urcu_accept_ret urcu_accept_work(struct urcu_workqueue *queue, has_work = ___urcu_grab_work(worker, &queue->head, &queue->tail, 0); /* Don't wait if we have work to do. */ - if (has_work || !cds_wfcq_empty(&worker->head, &worker->tail)) + if (has_work || worker->own + || !cds_wfcq_empty(&worker->head, &worker->tail)) goto do_work; /* Try to steal work from sibling instead of blocking */ if (__urcu_steal_work(queue, worker))