BehaviorTree.CPP icon indicating copy to clipboard operation
BehaviorTree.CPP copied to clipboard

Bugprone Tick time monitoring

Open Petzep opened this issue 6 months ago • 2 comments

Describe the bug The time measurement of a tick is bug-prone. https://github.com/BehaviorTree/BehaviorTree.CPP/blob/2a8a226fbbd99f524f0796e0d8a3145773c61c06/src/tree_node.cpp#L109-L111

This way of measuring time can be reordered by the compiler and will result in a time difference of 0. A good explanation of this issue can be found here: Enforcing statement order in C++

The article also discusses a fix.

And I've also seen examples where they fix it with an atomic fence (which cost's no extra cylces) https://stackoverflow.com/questions/22278963/how-to-prevent-timestamp-from-being-reorder-out

Petzep avatar Aug 26 '24 09:08 Petzep