X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=urcu%2Fworkqueue-fifo.h;h=0c85ca77c6cf6cc5c146e6bc5d7db355c5ea4548;hb=0695bd205e8aa88b3b032f483b7dc98c16450784;hp=68e050afdce43314b67cea2ad570fc3e836d8a37;hpb=d23382b83c64023453d212919d3807582da3f50b;p=urcu.git 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;