Method: Polyphony::Queue#push
- Defined in:
- ext/polyphony/queue.c
#push(value) ⇒ Queue #enq(value) ⇒ Queue #<<(value) ⇒ Queue
Adds the given value to the queue's end. If the queue is capped and full, the call will block until a value is removed from the queue.
137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'ext/polyphony/queue.c', line 137 VALUE Queue_push(VALUE self, VALUE value) { Queue_t *queue; GetQueue(self, queue); if (queue->closed) rb_raise(cClosedQueueError, "queue closed"); if (queue->capacity) capped_queue_block_push(queue); queue_schedule_first_blocked_fiber(&queue->shift_queue); ring_buffer_push(&queue->values, value); return self; } |