I need a very reliable handshaking between RM Rules.
For this reason I am using Hub Variables similar to Private Boolean but with nice names such as *_Busy
Here is my test RM rule:
I need to use a "Delay" because "Wait for Event : Elapsed Time" always cancelled and rule will not execute to the end.
And here is a related log:
Testing is simply toggling of Test VSWitch
Once in a while I am getting "Multiple simultaneous rule execution error".
This smells like some sort of Race Condition.
I can make it 100% reliable (did not get a failing condition) by adding (Private Boolean(true) is true(T) [TRUE]) as a Required Expression.
However I am using some RM rules triggerless as subroutines. In this case the Required Expression does absolutely nothing. I can make this working with two RM rules where extra rule simply prevents triggering of main rule.
Something like this:
My questions are:
- Is this true true Race Condition I found?
- Is it possible to create a single rule 100% protected from multiple runs?