From d8334d807812e40f67770ffc37608c0ce66f96b2 Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Tue, 21 Dec 2010 11:49:11 +0000 Subject: [PATCH] releaseCapabilityAndQueueWorker: task->stopped should be false (#4850) --- rts/Capability.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rts/Capability.c b/rts/Capability.c index 8234359..345bd39 100644 --- a/rts/Capability.c +++ b/rts/Capability.c @@ -456,12 +456,16 @@ releaseCapabilityAndQueueWorker (Capability* cap USED_IF_THREADS) task = cap->running_task; + // If the Task is stopped, we shouldn't be yielding, we should + // be just exiting. + ASSERT(!task->stopped); + // If the current task is a worker, save it on the spare_workers // list of this Capability. A worker can mark itself as stopped, // in which case it is not replaced on the spare_worker queue. // This happens when the system is shutting down (see // Schedule.c:workerStart()). - if (!isBoundTask(task) && !task->stopped) + if (!isBoundTask(task)) { if (cap->n_spare_workers < MAX_SPARE_WORKERS) { -- 1.7.10.4