From: Mathieu Desnoyers Date: Thu, 23 Oct 2014 13:01:29 +0000 (-0400) Subject: workqueue: use cds_wfcq_splice_blocking() rather than explicit locks X-Git-Url: http://git.liburcu.org/?p=userspace-rcu.git;a=commitdiff_plain;h=0695bd205e8aa88b3b032f483b7dc98c16450784 workqueue: use cds_wfcq_splice_blocking() rather than explicit locks cds_wfcq_splice_blocking() internally takes the locks. Signed-off-by: Mathieu Desnoyers --- diff --git a/urcu/workqueue-fifo.h b/urcu/workqueue-fifo.h index 68e050a..0c85ca7 100644 --- a/urcu/workqueue-fifo.h +++ b/urcu/workqueue-fifo.h @@ -192,12 +192,10 @@ bool ___urcu_steal_work(struct urcu_worker *worker, */ if (cds_wfcq_empty(&sibling->head, &sibling->tail)) return false; - cds_wfcq_dequeue_lock(&sibling->head, &sibling->tail); - splice_ret = __cds_wfcq_splice_blocking(&worker->head, + splice_ret = cds_wfcq_splice_blocking(&worker->head, &worker->tail, &sibling->head, &sibling->tail); - cds_wfcq_dequeue_unlock(&sibling->head, &sibling->tail); /* Ensure that we preserve FIFO work order. */ assert(splice_ret != CDS_WFCQ_RET_DEST_NON_EMPTY); return splice_ret != CDS_WFCQ_RET_SRC_EMPTY;