Consider a banking system with the following two functions: deposit (amount) and withdraw (amount). These two functions are passed the amount that is to be deposited or withdrawn from a bank account.
Assume a shared bank account exists between a husband and wife and concurrently the husband calls the withdraw() function and the wife calls deposit().
Describe how a race condition is possible and what might be done to prevent the race condition from occurring.