Mercurial > hg > Members > kono > Cerium
diff TaskManager/kernel/ppe/TaskManagerImpl.cc @ 939:9cfac2e8fc2e
loop detection.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 31 Jul 2010 12:18:19 +0900 |
parents | ad95be23c794 |
children | 0d404f6c36a8 |
line wrap: on
line diff
--- a/TaskManager/kernel/ppe/TaskManagerImpl.cc Sat Jul 31 10:32:19 2010 +0900 +++ b/TaskManager/kernel/ppe/TaskManagerImpl.cc Sat Jul 31 12:18:19 2010 +0900 @@ -156,6 +156,8 @@ void TaskManagerImpl::check_task_finish(HTaskPtr me, HTaskInfo *wait_queue) { + if (me->self == 0) + printf(" wait for zombi! %ld\n",(long)me); while(TaskQueue *p = me->wait_me->poll()) { HTaskPtr you = p->task; @@ -173,6 +175,14 @@ wait_i->free_(p); } + // me を誰かが持っていて、me が finish した後に、 + // me->wait_for(i) とか、やられると気まずい。 + // 特に、me が他人に再利用されていると。そういう時には、 + // このfreeをコメントアウトしてみる。 + + // id かななんかでチェックした方が良いが... + + me->self = 0; htaskImpl->free_(me); }