(toppers-users 283) i_lock_cpu() について教えてください

Horie, Seiichi tigersharkdsp @ geocities.co.jp
2001年 10月 3日 (水) 23:23:51 JST


こんばんは

jsp/config/m68k/cpu_config.h を読んでいてわからないところがあります。

i_lock_cpu()
{
 UH intmask;

 /*
  *  一時変数 intmask を使っているのは,current_intmask() を呼
  *  んだ直後に割込みが発生し,起動された割込みハンドラ内で
  *  int_intmask が変更される可能性があるためである.
  */
 intmask = current_intmask();
 disint();
 int_intmask = intmask;
}

この部分ですが、確かに一時変数に入れておけば途中で割り込まれて
そこで int_intmask が変更されても「この」コンテキストが実行を終了する
ときにはcurrent_intmaskできっちり上書きできます。しかし、上書きされた
int_intmaskはきえているわけですから、排他制御になっていない気がしま
す。解釈が間違っているのでしょうか。


---
酔漢