CLOSURE_DESTRUCTOR
((CLOSURE_DESTRUCTOR|CLOSURE_WAITING|CLOSURE_RUNNING) << 1)
closure_sub(_cl, CLOSURE_RUNNING - CLOSURE_DESTRUCTOR + 1); \
unsigned flags = atomic_sub_return_release(1 + CLOSURE_RUNNING - CLOSURE_DESTRUCTOR,
WARN(!r && (flags & ~CLOSURE_DESTRUCTOR),
flags & ~CLOSURE_DESTRUCTOR, (unsigned) __fls(flags));
if (cl->fn && !(flags & CLOSURE_DESTRUCTOR)) {