
for (;;) {
    if (critical_task0_pending) {
        critical_task0();
        continue;
    }
    if (critical_task1_pending) {
        critical_task1();
        continue;
    }
    if (mediumprio_pending) {
        if (mediumprio_task0_bit) {
            mediumprio_task0();
            continue;
        }
        if (mediumprio_task1_bit) {
            mediumprio_task1();
            continue;
        }
        ...
    }
    if (lowprio_pending) {
        if (lowprio_task0_bit) {
            lowprio_task0();
            continue;
        }
        if (lowprio_task1_bit) {
            lowprio_task1();
            continue;
        }
        ...
    }
}
