summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
a649215)
Also, tmp_head don't need to hold space for a lock, since only the local
thread is touching it.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
__cds_wfcq_init(&queue->head, &queue->tail);
urcu_wait_queue_init(&queue->waitqueue);
CDS_INIT_LIST_HEAD(&queue->sibling_head);
__cds_wfcq_init(&queue->head, &queue->tail);
urcu_wait_queue_init(&queue->waitqueue);
CDS_INIT_LIST_HEAD(&queue->sibling_head);
+ pthread_mutex_init(&queue->sibling_lock, NULL);
queue->shutdown = false;
}
queue->shutdown = false;
}
bool steal)
{
enum cds_wfcq_ret splice_ret;
bool steal)
{
enum cds_wfcq_ret splice_ret;
- struct cds_wfcq_head tmp_head;
+ struct __cds_wfcq_head tmp_head;
struct cds_wfcq_tail tmp_tail;
struct cds_wfcq_node *node;
struct cds_wfcq_tail tmp_tail;
struct cds_wfcq_node *node;
*/
if (cds_wfcq_empty(src_head, src_tail))
return false;
*/
if (cds_wfcq_empty(src_head, src_tail))
return false;
- cds_wfcq_init(&tmp_head, &tmp_tail);
+ __cds_wfcq_init(&tmp_head, &tmp_tail);
/* Ensure that we preserve FIFO work order. */
assert(!steal || worker->own == NULL);
/* Ensure that we preserve FIFO work order. */
assert(!steal || worker->own == NULL);
}
/* Splice into worker workqueue. */
}
/* Splice into worker workqueue. */
- splice_ret = cds_wfcq_splice_blocking(&worker->head,
+ splice_ret = __cds_wfcq_splice_blocking(&worker->head,
&worker->tail,
&tmp_head,
&tmp_tail);
&worker->tail,
&tmp_head,
&tmp_tail);