Lines Matching defs:item
38 * P1. initialize an item
43 * P3. atomic_store_release(&pcq->pcq_items[c], item) to publish
44 * the item in the space it reserved
56 * unconsumed but potentially published item (fails if item
60 * published item
67 * C6. use the item
78 * Initializing item at P1 is dependency-ordered before usage of
79 * item at C6, so items placed by pcq_put can be safely used by
88 * C2 (if not, pcq_get fails in `if (item == NULL) return
101 * location at store C3 happens before placing a new item in the
176 * pcq_put: place an item at the end of the queue.
179 pcq_put(pcq_t *pcq, void *item)
184 KASSERT(item != NULL);
199 * data item. See pcq_get(). This also ensures that any changes
200 * that the caller made to the data item are globally visible
203 atomic_store_release(&pcq->pcq_items[op], item);
214 * pcq_peek: return the next item from the queue without removal.
229 * pcq_get: remove and return the next item for consumption or NULL if empty.
238 void *item;
246 item = atomic_load_consume(&pcq->pcq_items[c]);
247 if (item == NULL) {
283 return item;