Fix: don't wait after completion of a work queue job batch
[urcu.git] / src / workqueue.c
index 6707ffe3b45e2c2226d99c3b163d4e1c820028aa..39d0e077acc101b5e1588c9a1fae954050bd134c 100644 (file)
@@ -238,15 +238,12 @@ static void *workqueue_thread(void *arg)
                        if (cds_wfcq_empty(&workqueue->cbs_head,
                                        &workqueue->cbs_tail)) {
                                futex_wait(&workqueue->futex);
                        if (cds_wfcq_empty(&workqueue->cbs_head,
                                        &workqueue->cbs_tail)) {
                                futex_wait(&workqueue->futex);
-                               (void) poll(NULL, 0, 10);
                                uatomic_dec(&workqueue->futex);
                                /*
                                 * Decrement futex before reading
                                 * urcu_work list.
                                 */
                                cmm_smp_mb();
                                uatomic_dec(&workqueue->futex);
                                /*
                                 * Decrement futex before reading
                                 * urcu_work list.
                                 */
                                cmm_smp_mb();
-                       } else {
-                               (void) poll(NULL, 0, 10);
                        }
                } else {
                        (void) poll(NULL, 0, 10);
                        }
                } else {
                        (void) poll(NULL, 0, 10);
This page took 0.022389 seconds and 4 git commands to generate.