From 4d910f6bfe346ac4e0af20644a6ab6d0bb99f6fd Mon Sep 17 00:00:00 2001 From: Markus Triska Date: Sun, 8 Oct 2023 09:43:10 +0200 Subject: [PATCH] FIXED: variables in reified propagators must share the same queue Otherwise, propagation steps may be inadvertently omitted, if propagators are scheduled in a different queue. This addresses #2084. --- src/lib/clpz.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/clpz.pl b/src/lib/clpz.pl index 18475721..7bace705 100644 --- a/src/lib/clpz.pl +++ b/src/lib/clpz.pl @@ -3625,7 +3625,8 @@ reified_goal(g(Goal), _) --> [{Goal}]. reified_goal(p(Vs, Prop), _) --> [{make_propagator(Prop, P)}], parse_init_dcg(Vs, P), - [{trigger_once(P)}], + [{variables_same_queue(Vs), + trigger_once(P)}], [( { propagator_state(P, S), S == dead } -> [] ; [p(P)])]. reified_goal(p(Prop), Ds) --> { term_variables(Prop, Vs) }, -- 2.54.0