make futex_progress | tee futex_progress.log
make futex_progress_no_wake | tee futex_progress_no_wake.log
make futex_progress_late_dec | tee futex_progress_late_dec.log
+ make futex_progress_inverted_waiting_vs_gp_futex | tee futex_progress_inverted_waiting_vs_gp_futex.define.log
make asserts | tee asserts.log
make summary
futex_progress_late_dec_define:
cp futex_progress_late_dec.define .input.define
+futex_progress_inverted_waiting_vs_gp_futex: clean futex_ltl futex_progress_inverted_waiting_vs_gp_futex_define run_weak_fair
+ cp .input.spin $@.spin.input
+ -cp .input.spin.trail $@.spin.input.trail
+
+futex_progress_inverted_waiting_vs_gp_futex_define:
+ cp futex_progress_inverted_waiting_vs_gp_futex.define .input.define
+
futex_ltl:
touch .input.define
cat DEFINES > pan.ltl
in_registry[1] = 1;
do
:: 1 ->
-#ifndef INJ_LATE_DEC
+#if (!defined(INJ_LATE_DEC) && !defined(INJ_INVERT_WAITING_VS_GP_FUTEX))
gp_futex = -1;
#endif
if
:: else ->
skip;
fi;
+#ifdef INJ_INVERT_WAITING_VS_GP_FUTEX
+ gp_futex = -1;
+#endif
if
:: (in_registry[0] == 0 && in_registry[1] == 0) ->