9.2 Symptoms

Symptoms of this sort varies. Essentially, a variable can be partially updated by an ISR or signal handler, and partially updated by the regular part of a program. Or, in the case of reading the variable, an ISR, signal handler or the “regular” part of a program may utilize the value of a partially updated variable.

The actual symptoms can range from variable clobbering to strange “impossible” decisions.

The worst part of programs with this kind of problems is that the symptoms may occur at any time, and each observed symptom may differ from others even though the root of the problem is the same. This is because it all depends on which part of the “regular” program is interrupted or signaled, and the value/values of the variable/variables affected.