/* * The thing about the wake_up_state() return value; I think we can ignore it. * * If for some reason it would return 0, that means the previously waiting * task is already running, so it will observe condition true (or has already).
*/ void swake_up_locked(struct swait_queue_head *q, int wake_flags)
{ struct swait_queue *curr;
/* * Wake up all waiters. This is an interface which is solely exposed for * completions and not for general usage. * * It is intentionally different from swake_up_all() to allow usage from * hard interrupt context and interrupt disabled regions.
*/ void swake_up_all_locked(struct swait_queue_head *q)
{ while (!list_empty(&q->task_list))
swake_up_locked(q, 0);
}
/* * Does not allow usage from IRQ disabled, since we must be able to * release IRQs to guarantee bounded hold time.
*/ void swake_up_all(struct swait_queue_head *q)
{ struct swait_queue *curr;
LIST_HEAD(tmp);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.