>>454

int nCalled = 0;
void FuncB(){
 if( ++nCalled == 1 ){
  do{
   // do the job that may raise reentrant
  }while(--nCalled);
 }
}

シングルスレッドの処理系ならこんな風にも書けるな。
nCalled にアクセスしている部分は処理系によってはクリティカルセクションで囲むことになるだろう