リエントラント
読み:リエントラント
外語:re-entrant
サブルーチンや関数が、自身の実行が終わらないうちに更に呼び出されても正常に動作できること。「再入可能」とも。
概要
例えば、あるサブルーチンを実行中、割り込みが発生したとする。
その割り込み処理のルーチンの途中で同じサブルーチンが呼ばれたとき、リエントラントなルーチンであれば問題なく処理できるが、そうでない場合にはレジスターやワークエリアを破壊してしまい、正しい処理ができなくなってしまう。
リエントラントな処理にする(リエントランスを実現する)ためには、複数のタスクや割り込みルーチンから同時に呼ばれても問題がないように設計する必要がある。
特徴
C/C++であれば、ある関数内で使用する変数を、全て関数内で動的に生成するようにすれば、その関数は再入可能になる。逆に、静的な領域を使用する場合は、その関数は再入が不可能になる。
複数のタスクから呼ばれる可能性のあるライブラリを作成する場合は、再入可能なように設計しておくと、様々な場面で利用することができるため利便性が高い。
再検索