I am familiar with the race condition and the famous counter++ example. My question is not about read-write protection, but only about read protection. Is it possible I read a corrupt value via an interrupt? incase another interrupt/main code was just in the process of changing its value? Do I need to protect my reads of let's say volatile components? I am using C and an ARM microcontroller.
Furthermore, if only one task is doing read-write manipulation on some variable, and all other tasks are only reading it, do I need to protect it?