(toppers-users 1546) Re: タスクの二重起動防止

Masaki Muranaka monamour @ monaka.org
2004年 7月 17日 (土) 00:43:13 JST


こんにちは。

On 2004/07/16, at 10:27, Ko Tanikawa wrote:
> 自タスクが起床中は自タスクへの起床要求を無視する,と言
> うようなことを簡単に実現する方法はないでしょうか?

文面通り単に無視するということでしたら、宿口さんが仰るように
can_wup が正解のように思いますが、↓

> リレ
> ーが ON かどうか,程度ならまだ良いのですが,タスクAを
> 起床できる条件が複雑になりますと,タスク起床要求前のチ
> ェックが大変になります。

タスクAの起床条件が複雑になることが予め解っているのであれば、
尾形さんの仰る通り、イベントフラグを使って待ち状態に
もっていくのが楽なような気もします。
// "ある条件の時は起動"というコードより"ある条件のとき待ち解除"
// としたほうが、デバッガで追いかけやすいですし、複数タスクが
// 共有する変数も減ります。

ちなみに、待ち/待ち解除を行うのもタスクの起動/終了を行うのも
かかるCPUパワーにはそれほど差は出ません。
(待ち行列の長さなどにも依るので一概には言えませんが)

--
from もなか