X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FSchedule.c;h=7af3ab560f441fe38f81c01b9e75ad210a9b614d;hb=05fa98679efbc6d611d27a8b1079de83fc6efd93;hp=a7696ed785e330f1ee5e132836425de975dcfeeb;hpb=e8a78f0f56786df40eb1d6476822c78e549f0ab1;p=ghc-hetmet.git diff --git a/ghc/rts/Schedule.c b/ghc/rts/Schedule.c index a7696ed..7af3ab5 100644 --- a/ghc/rts/Schedule.c +++ b/ghc/rts/Schedule.c @@ -1934,6 +1934,7 @@ forkProcess(HsStablePtr *entry if (pid) { // parent // just return the pid + rts_unlock(cap); return pid; } else { // child @@ -2462,6 +2463,8 @@ scheduleWaitThread (StgTSO* tso, /*[out]*/HaskellObj* ret, Capability *cap) cap = schedule(cap,task); ASSERT(task->stat != NoStatus); + ASSERT(cap->running_task == task); + ASSERT(task->cap == cap); IF_DEBUG(scheduler, sched_belch("bound thread (%d) finished", task->tso->id)); return cap;