(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はきえているわけですから、排他制御になっていない気がしま
す。解釈が間違っているのでしょうか。
---
酔漢