assert mode in [Electron(Low), XRay(High)] assert beam_flattener in [On, Off] assert not (mode == XRay(High) and beam_flattener == Off)
void T_sum() { sum++; } void T_peterson() { b = 1; turn = A; while (1) { if (!a) break; if (turn != A) break; } }
void T_1() { spin_lock(&A); sum++; spin_unlock(&A); } void T_2() { spin_lock(&B); sum++; spin_unlock(&B); }
void T_1() { spin_lock(&A); sum++; spin_unlock(&A); } void T_2() { sum++; }