void start_pkts(CmpCache_Txn txn) { if (txn.n_pkts_remaining > 0) { send_pkt(txn, txn.pkts); } else { txn.cb(); } }
void pkt_callback(CmpCache_Txn txn, CmpCache_Pkt pkt) { txn.n_pkts_remaining--; if (pkt.done) { txn.cb(); } foreach (CmpCache_Pkt dep in pkt.wakeup) { if (pkt.done || pkt.off_crit) { dep.off_crit = true; } dep.deps--; if (dep.deps == 0) { send_pkt(txn, dep); } } }
void pkt_callback(CmpCache_Txn txn, CmpCache_Pkt pkt) { txn.n_pkts_remaining--; if (pkt.done) txn.cb(); foreach (CmpCache_Pkt dep in pkt.wakeup) { if (pkt.done || pkt.off_crit) dep.off_crit = true; dep.deps--; if (dep.deps == 0) send_pkt(txn, dep); } }
void start_pkts(CmpCache_Txn txn) { if (txn.n_pkts_remaining > 0) send_pkt(txn, txn.pkts); else txn.cb(); }