ESTABLISHING CONNECTION

if (domain) {
    if (!list_empty(&domain->pending))
        first = list_first_entry(&domain->pending,
                struct async_entry, domain_list);
} else {
    if (!list_empty(&async_global_pending))
        first = list_first_entry(&async_global_pending,
                struct async_entry, global_list);
}

if (first)
    ret = first->cookie;

spin_unlock_irqrestore(&async_lock, flags);
 
INITIATE BREACH PROTOCOL