I am looking at the ReentrancyGuard smart contract from Open Zeppelin and I don't understand when I have to use it.
Is it necessary in all my smart contracts or do I only have to add it in some particular cases? If the latter is true, what are those cases?