in worker.c [432:452]
static void do_ncrx_callbacks(struct ncrx_worker *cur, struct timerlist *list)
{
uint64_t now = now_mono_ms();
struct timerlist *tnode, *tmp;
struct bucket *bkt;
timerlist_for_each(tnode, tmp, list) {
if (tnode->when > now)
break;
/*
* Remove the bucket from the list first, since it might end up
* being re-added to another timerlist by drain_bucket_ncrx().
*/
timerlist_del(tnode);
bkt = bucket_from_timernode(tnode);
ncrx_process(NULL, now, 0, bkt->ncrx);
drain_bucket_ncrx(cur, bkt);
}
}