星期四, 5月 06, 2004

about RTXC: KS_execute.. no remove task in waiting list...

RTXC KS_execute(TASKID) start the TASKID task from the begin address.
if the task is running , it stop it, start it from beginning.
it the task is not running, it start executing it.

but if the task is running and waitting for some Kernel OBJ (Queue,Sem,Resource).
this function call won't remove it from the OBJ's waitting list.


So .. if want to do a clean KS_execute, must do KS_terminal first:

KS_terminate(TASKID);
KS_execute(TASKID);

... that's because the KS_terminate wil remove the task from OBJ's waitting list.


RTXC, Kernel, OS

沒有留言:

網誌存檔