X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rts%2FSchedule.c;h=bd8ba743debe8f352286122dc90a9a4ac528e468;hp=c652e181517bdcfe06a7b7cb15dc9d994e8dddde;hb=a91cc8496bf4ea7fe1e3ad9d97836152f3939ffa;hpb=8846139a7c82feabb39d9d68d194178f649699cd diff --git a/rts/Schedule.c b/rts/Schedule.c index c652e18..bd8ba74 100644 --- a/rts/Schedule.c +++ b/rts/Schedule.c @@ -416,8 +416,6 @@ schedule (Capability *initialCapability, Task *task) // needs to acquire all the capabilities). We can't kill // threads involved in foreign calls. // - // * sched_state := SCHED_INTERRUPTED - // // * somebody calls shutdownHaskell(), which calls exitScheduler() // // * sched_state := SCHED_SHUTTING_DOWN @@ -443,9 +441,6 @@ schedule (Capability *initialCapability, Task *task) /* scheduleDoGC() deletes all the threads */ cap = scheduleDoGC(cap,task,rtsFalse,GetRoots); break; - case SCHED_INTERRUPTED: - IF_DEBUG(scheduler, sched_belch("SCHED_INTERRUPTED")); - break; case SCHED_SHUTTING_DOWN: IF_DEBUG(scheduler, sched_belch("SCHED_SHUTTING_DOWN")); // If we are a worker, just exit. If we're a bound thread @@ -2060,7 +2055,7 @@ scheduleDoGC (Capability *cap, Task *task USED_IF_THREADS, */ if (sched_state >= SCHED_INTERRUPTING) { deleteAllThreads(&capabilities[0]); - sched_state = SCHED_INTERRUPTED; + sched_state = SCHED_SHUTTING_DOWN; } /* everybody back, start the GC. @@ -2805,7 +2800,7 @@ workerStart(Task *task) // On exit from schedule(), we have a Capability. releaseCapability(cap); - taskStop(task); + workerTaskStop(task); } #endif @@ -2901,7 +2896,7 @@ exitScheduler( void ) #endif // If we haven't killed all the threads yet, do it now. - if (sched_state < SCHED_INTERRUPTED) { + if (sched_state < SCHED_SHUTTING_DOWN) { sched_state = SCHED_INTERRUPTING; scheduleDoGC(NULL,task,rtsFalse,GetRoots); }