Lines Matching refs:queue

129 /* One queue for each sleeping process in the system. */
131 struct list_head list; /* queue of pending operations */
223 * 2) queue.status: (SEM_BARRIER_2)
305 * merge_queues - merge single semop queues into global queue
308 * This function merges all per-semaphore queues into the global queue.
810 * update_queue is O(N^2) when it restarts scanning the whole queue of
833 * in the queue, then they have observed the original
844 * @wake_q: lockless wake-queue head.
871 /* operation completed, remove from queue & wakeup */
887 * @wake_q: lockless wake-queue head
889 * Checks all required queue for wait-for-zero operations, based
924 * then check the global queue, too.
937 * @wake_q: lockless wake-queue head.
968 * be in the per semaphore pending queue, and decrements
1021 * @wake_q: lockless wake-queue head
1037 /* semaphore array uses the global queue - just process it. */
1993 struct sem_queue queue;
2094 queue.sops = sops;
2095 queue.nsops = nsops;
2096 queue.undo = un;
2097 queue.pid = task_tgid(current);
2098 queue.alter = alter;
2099 queue.dupsop = dupsop;
2101 error = perform_atomic_semop(sma, &queue);
2125 * task into the pending queue and go to sleep.
2134 list_add_tail(&queue.list,
2138 list_add_tail(&queue.list,
2142 list_add_tail(&queue.list, &curr->pending_const);
2149 list_add_tail(&queue.list, &sma->pending_alter);
2151 list_add_tail(&queue.list, &sma->pending_const);
2158 WRITE_ONCE(queue.status, -EINTR);
2159 queue.sleeper = current;
2175 * spuriously. The queue.status is checked again in the
2181 error = READ_ONCE(queue.status);
2197 error = READ_ONCE(queue.status);
2200 * If queue.status != -EINTR we are woken up by another process.
2207 * If an interrupt occurred we have to clean up the queue.
2213 unlink_queue(sma, &queue);
2330 * should we queue up and wait until we can do so legally?
2331 * The original implementation attempted to do this (queue and wait).