extern void __VERIFIER_error() __attribute__ ((__noreturn__)); extern int __VERIFIER_nondet_int(); int main() { int p1 = __VERIFIER_nondet_int(); // condition variable int lk1; // lock variable int p2 = __VERIFIER_nondet_int(); // condition variable int lk2; // lock variable int p3 = __VERIFIER_nondet_int(); // condition variable int lk3; // lock variable int p4 = __VERIFIER_nondet_int(); // condition variable int lk4; // lock variable int p5 = __VERIFIER_nondet_int(); // condition variable int lk5; // lock variable int p6 = __VERIFIER_nondet_int(); // condition variable int lk6; // lock variable int p7 = __VERIFIER_nondet_int(); // condition variable int lk7; // lock variable int p8 = __VERIFIER_nondet_int(); // condition variable int lk8; // lock variable int p9 = __VERIFIER_nondet_int(); // condition variable int lk9; // lock variable int p10 = __VERIFIER_nondet_int(); // condition variable int lk10; // lock variable int p11 = __VERIFIER_nondet_int(); // condition variable int lk11; // lock variable int p12 = __VERIFIER_nondet_int(); // condition variable int lk12; // lock variable int p13 = __VERIFIER_nondet_int(); // condition variable int lk13; // lock variable int p14 = __VERIFIER_nondet_int(); // condition variable int lk14; // lock variable int p15 = __VERIFIER_nondet_int(); // condition variable int lk15; // lock variable int cond; while(1) { cond = __VERIFIER_nondet_int(); if (cond == 0) { goto out; } else {} lk1 = 0; // initially lock is open lk2 = 0; // initially lock is open lk3 = 0; // initially lock is open lk4 = 0; // initially lock is open lk5 = 0; // initially lock is open lk6 = 0; // initially lock is open lk7 = 0; // initially lock is open lk8 = 0; // initially lock is open lk9 = 0; // initially lock is open lk10 = 0; // initially lock is open lk11 = 0; // initially lock is open lk12 = 0; // initially lock is open lk13 = 0; // initially lock is open lk14 = 0; // initially lock is open lk15 = 0; // initially lock is open // lock phase if (p1 != 0) { lk1 = 1; // acquire lock } else {} if (p2 != 0) { lk2 = 1; // acquire lock } else {} if (p3 != 0) { lk3 = 1; // acquire lock
content may be truncated. 'popout' for larger text window.