(toppers-users 1547) Re: タスクの二重起動防止
Ko Tanikawa
dev @ agapesystem.com
2004年 7月 17日 (土) 23:13:10 JST
谷川です。皆様,的確なフォロー,どうもありがとうござい
ました。結果的には,タスクを起床待ち状態にする前に
can_wup(TSK_SELF)を実行することで解決しました。
> 「uITRON 初心者」ということで、もしかしたら谷川さんはタスクの
> 起床をWindowsやUnixの外部プログラムを起動するもののように
> 思われているのかもしれないと思いました。
図星でした…(^^;)基本的にこの勘違いをしていました。実
際には2重起動してなくて,キューイングされているだけで
した。
> タスクIDで指定するタスクの実体は常に一つであり、サービスコール
> がタスクに与える影響は、タスクの状態を変化させるだけだからです。
同じタスク ID のものが2重起動することはない,と言うこ
とですね。タスク ID を変えれば,
CRE_TSK(TASK1, { TA_HLNG, (VP_INT) 1, task, MID_PRIORITY, STACK_SIZE, NULL });
CRE_TSK(TASK2, { TA_HLNG, (VP_INT) 2, task, MID_PRIORITY, STACK_SIZE, NULL });
CRE_TSK(TASK3, { TA_HLNG, (VP_INT) 3, task, MID_PRIORITY, STACK_SIZE, NULL });
みたいに,関数そのものは共用できるんですよね?このあた
りが興味深いですね。
> ちなみに、待ち/待ち解除を行うのもタスクの起動/終了を行うのも
> かかるCPUパワーにはそれほど差は出ません。
貴重な情報ありがとうございます。
何となく,だんだん分かってきて嬉しく思います。今回は本
当に助かりました。まだまだ壁に突き当たると思いますが,
頑張って乗り越えていきたいと思います。
> トラブル対応中なのに呼ばれてしまった。(号泣)
す,すみません,解決されることをお祈りします。
--
dev @ agapesystem.com 谷川