0
結果を取得してPost_Bitsを元の状態Post_Bits &= (~Post);
にクリアし、特定のPost res = Post_Bits & Post;
が以前に見られた場合に条件をテストする前に、割り込みを無効にする点は何ですか? たとえば、別の関数でPost_Bits
が使用されていて、ここで変更している場合は、無効化/有効化割り込みでスレッドを安全にしますか?割り込みを無効に割り込みとスレッドの安全を無効にする
BOOL Post_a_Note(Post_t Post) // Post_t is a 32bit number
{
Post_t res; //Final Result
UINT16 capture = INTDisableInterrupts();
res = Post_Bits & Post;
Post_Bits &= (~Post);
INTRestoreInterrupts(capture);
return (res != 0);
}
5行目と6行目の間に割り込みが発生し、調べているビットをセットすると、ビットがクリアされますが、設定されていないと報告されるため、そのイベントはありません。 –
割り込みはスレッドではなく、スレッドセーフは別の獣です。 –