フォーラム: ヘルプ (スレッド #6196)

「次のキューを取得」マクロの質問 (2004-10-17 02:14 by hamayan #11545)

お世話になっています。
イベントフラグのTA_WMULの動作がどうしてもおかしいので、ソースコードを眺めていて、mknl.hのマクロでよく判らない所が出てきました。

205行目辺りの
#define mknl_ref_nxt(que, mtcb) \
((mtcb)->next != (que)->head ? (que)->head : NULL) /* 次のキューを取得 */
ですが、キューの次のコンテキストを探しているのに、見つかった時は、またキューの先頭のコンテキストを答えています。

これを、以下の様に直すと、思った通りの動作をします。
#define mknl_ref_nxt(que, mtcb) \
((mtcb)->next != (que)->head ? (mtcb)->next : NULL) /* 次のキューを取得 */

対策としては、これで宜しいでしょうか?。

メッセージ #11545 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

RE: 「次のキューを取得」マクロの質問 (2004-10-17 08:18 by m-arai #11549)

その修正で問題無いと思います。

これじゃぁWMULは正しく動きませんね。いつぞやは、
TA_WMULの'存在だけ'を指摘してしまいましたが、
バグがあったとは。
#11545 への返信

メッセージ #11549 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

RE: 「次のキューを取得」マクロの質問 (2004-10-18 22:30 by m-arai #11565)

メッセージ #11565 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする