On start condition of a Buchi automaton, the automaton is executed twice.

This is fine for now, as all the current LTL operators do not care about
this. But it would break the 'next' operator, which will be introduced in a
follow-up patch.

Prepare for the introduction of the 'next' operator, only execute the
automaton once on start condition.

Signed-off-by: Nam Cao <nam...@linutronix.de>
---
 include/rv/ltl_monitor.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/rv/ltl_monitor.h b/include/rv/ltl_monitor.h
index 9a583125b566..67031a774e3d 100644
--- a/include/rv/ltl_monitor.h
+++ b/include/rv/ltl_monitor.h
@@ -167,8 +167,10 @@ static void ltl_atom_update(struct task_struct *task, enum 
ltl_atom atom, bool v
        ltl_atom_set(mon, atom, value);
        ltl_atoms_fetch(task, mon);
 
-       if (!rv_ltl_valid_state(mon))
+       if (!rv_ltl_valid_state(mon)) {
                ltl_attempt_start(task, mon);
+               return;
+       }
 
        ltl_validate(task, mon);
 }
-- 
2.39.5


Reply via email to