Mercurial > hg > Members > kono > Cerium
diff TaskManager/kernel/ppe/TaskManagerImpl.cc @ 519:5c76db2a07fa
continue..
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 20 Oct 2009 20:34:47 +0900 |
parents | 125a72948e44 |
children | 47b61865ea8c |
line wrap: on
line diff
--- a/TaskManager/kernel/ppe/TaskManagerImpl.cc Fri Oct 16 17:57:17 2009 +0900 +++ b/TaskManager/kernel/ppe/TaskManagerImpl.cc Tue Oct 20 20:34:47 2009 +0900 @@ -34,10 +34,10 @@ schedTaskManager = new SchedTaskManager(this); - systask_start = create_task(SYSTASK_START); - systask_finish = create_task(SYSTASK_FINISH); + systask_start = create_task(SYSTASK_START,0,0,0,0); + systask_finish = create_task(SYSTASK_FINISH,0,0,0,0); - systask_start->spawn(); + spawn(systask_start); // systask_finish で spawn すると // systask_finish->wait_for(systask_finish); @@ -46,6 +46,19 @@ append_waitTask(systask_finish); } +void * +TaskManagerImpl::get_rbuf() +{ + return 0; +} + +void * +TaskManagerImpl::get_wbuf() +{ + return 0; +} + + HTaskPtr TaskManagerImpl::create_task(int cmd) { @@ -53,18 +66,35 @@ new_task = htaskImpl->create(cmd); new_task->post_func = noaction; - new_task->mimpl = this; + new_task->rbuf = get_rbuf(); + new_task->wbuf = get_wbuf(); return new_task; } +HTaskPtr +TaskManagerImpl::create_task(int cmd, void *read, int rsize, void *write, int wsize) +{ + HTaskPtr new_task; + + new_task = htaskImpl->create(cmd); + new_task->post_func = noaction; + new_task->rbuf = read; + new_task->rsize = rsize; + new_task->wbuf = write; + new_task->wsize = wsize; + + return new_task; +} + + /** * タスクを実行可能キューまたは待機キューへ追加する。 * 依存関係が満たされていれば active, まだだったら wait へ。 * task->spawn(); */ void -TaskManagerImpl::spawn_task(HTaskPtr task) +TaskManagerImpl::spawn(HTask *task) { // waiter // master // waitee // slave