Method: Polyphony::Queue#flush_waiters
- Defined in:
- ext/polyphony/queue.c
#flush_waiters(value) ⇒ Queue
Flushes all fibers currently blocked waiting to remove items from the queue, resuming them with the given value.
353 354 355 356 357 358 359 360 361 362 363 364 365 |
# File 'ext/polyphony/queue.c', line 353 VALUE Queue_flush_waiters(VALUE self, VALUE value) { Queue_t *queue; GetQueue(self, queue); while(1) { VALUE fiber = ring_buffer_shift(&queue->shift_queue); if (fiber == Qnil) return self; Fiber_make_runnable(fiber, value); } return self; } |