- printf_verbose("queue work %p\n", work);
- urcu_queue_work(&workqueue, &work->w);
+retry:
+ printf_verbose("attempt queue work %p\n", work);
+ ret = urcu_queue_work(&workqueue, &work->w);
+ if (ret == URCU_ENQUEUE_FULL) {
+ printf_verbose("queue work %p (queue full)\n", work);
+ (void) poll(NULL, 0, 10);
+ goto retry;
+ }
+ printf_verbose("queue work %p (ok)\n", work);