Perform Interruption doesn't interrupt sometimes

ATHellboy

New member
Hey there,

I think this image is good enough for showing the problem.

BT.pngI want to know why Perform Interruption after Seek task doesn't interrupt right BT (Order) sometimes.
 
If you enable logging you'll likely be able to get a better idea of what it is doing, but my guess is that Perform Interruption is happening before the Interrupt task is actually running.
 
If you enable logging you'll likely be able to get a better idea of what it is doing, but my guess is that Perform Interruption is happening before the Interrupt task is actually running.

Yup, I have not logged it before but I think your guess is correct. For preventing this behavior what should I do ?
 
There are a couple of ways that you could prevent it:

1. Add a wait task with a small duration to the left branch to prevent perform interruption from running before the interrupt branch is activated.
2. Restructure your tree so the interrupt branch runs first, before the branch that is performing the interruption.
3. Add a flag to the interrupt branch that gets reevaluated using conditional aborts to determine if it should run.
 
There are a couple of ways that you could prevent it:

1. Add a wait task with a small duration to the left branch to prevent perform interruption from running before the interrupt branch is activated.
2. Restructure your tree so the interrupt branch runs first, before the branch that is performing the interruption.
3. Add a flag to the interrupt branch that gets reevaluated using conditional aborts to determine if it should run.

I don't know how exactly interruption works but as I noticed that Repeater under Interrupt in right side of the tree is never popped out and pushed just one time after start so it always executing and Perform Interruption is always after it. Am I right ?
I don't get why that Perform Interruption doesn't work.

Also even if Perform Interruption is happening before the Interrupt task, it should not block it ?
 
Have you tried creating a small test tree just to experiment with the interrupt set of tasks to see how they function? I think that this will help you get a feel for it.

Assuming the branch beneath the Interrupt task is running the Perform Interruption task will stop it from running. However, depending on the task that you have above it, that branch may start to run again (but I don't think that is happening in this case). If Perform Interruption is called before Interrupt is active it will not prevent the Interrupt task from running.
 
Have you tried creating a small test tree just to experiment with the interrupt set of tasks to see how they function? I think that this will help you get a feel for it.

Assuming the branch beneath the Interrupt task is running the Perform Interruption task will stop it from running. However, depending on the task that you have above it, that branch may start to run again (but I don't think that is happening in this case). If Perform Interruption is called before Interrupt is active it will not prevent the Interrupt task from running.

I think Perform Interruption should be always at the right side of Interrupt because of order of executing. Am I right ? (At least in my tree)
Because I tested it and seems I don't have that problem anymore.
 
Ahh.. I see what is happening. That makes sense. The right branch is executed before the left branch within a parallel task. This is for historical reasons and I plan on changing it.
 
Top