上の図は、Task_Aに呼び出されたAru_functionの途中で割り込みが発生し、割り込み処理関数のInterrupt_1から再びAru_functionが呼び出されていることを示しています。
この一連の処理の中で、Aru_functionだけを見ると ① ② ③の順で動作します。途中で一旦止まり、後から動いた処理に追い抜かれ、止まっていたところから処理を継続します。 Aru_functionが静的変数を使用しないのであれば、この関数は追い抜かれた処理の影響を受けず、リエントラントであると言えます。
もし、①の部分で静的変数に値を保存し、③の部分でその変数を参照していると、③で参照する値は②の処理が保存した値を参照するので、追い抜かれた処理の影響を受ける可能性があります。
リエントラント関数は、Aru_functionが呼び出す子関数も含め全てリエントラントでなければなりません。