* Enqueue an entry, and then flush the queue. This forces the popping threads * to wake up, even if we're below the fill fraction. We have this in a single * function, rather than having a separate call, because it prevents race * conditions between the enqueuing thread and the dequeueing thread, where the * enqueueing thread will wake up the dequeueing thread, that thread will * destroy th
| 117 | * destroy the condvar before the enqueuing thread is done. |
| 118 | */ |
| 119 | void |
| 120 | bqueue_enqueue_flush(bqueue_t *q, void *data, uint64_t item_size) |
| 121 | { |
| 122 | bqueue_enqueue_impl(q, data, item_size, B_TRUE); |
| 123 | } |
| 124 | |
| 125 | /* |
| 126 | * Take the first element off of q. If there are no elements on the queue, wait |
no test coverage detected