In this smart contract security tutorial we look at how reentrancy attacks work and what we can do to protect against them, including using a reentrancy guard. This tutorial also shows how one smart contract can call another smart contract on the blockchain.
Smart Contract Security series source code:
https://github.com/jspruance/smart-contract-security