bool libxl__xswait_inuse(const libxl__xswait_state *xswa) { bool time_inuse = libxl__ev_time_isregistered(&xswa->time_ev); bool watch_inuse = libxl__ev_xswatch_isregistered(&xswa->watch_ev); assert(time_inuse == watch_inuse); return time_inuse; }
bool libxl__async_exec_inuse(const libxl__async_exec_state *aes) { bool time_inuse = libxl__ev_time_isregistered(&aes->time); bool child_inuse = libxl__ev_child_inuse(&aes->child); assert(time_inuse == child_inuse); return child_inuse; }
static void occurs(libxl__egc *egc, libxl__ev_time *ev, const struct timeval *requested_abs) { EGC_GC; int i; int off = ev - &et[0][0]; LOG(DEBUG,"occurs[%d][%d] seq=%d", off/NTIMES, off%NTIMES, seq); switch (seq) { case 0: assert(ev == &et[0][1]); libxl__ev_time_deregister(gc, &et[0][0]); libxl__ev_time_deregister(gc, &et[0][2]); regs(gc, 1); libxl__ev_time_deregister(gc, &et[0][1]); break; case 1: case 2: assert(ev == &et[1][seq-1]); break; case 3: assert(ev == &et[1][2]); for (i=0; i<NTIMES; i++) { assert(!libxl__ev_time_isregistered(&et[0][i])); assert(!libxl__ev_time_isregistered(&et[1][i])); } libxl__ao_complete(egc, tao, 0); return; default: abort(); } seq++; }