summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
Diffstat (limited to 'rts')
-rw-r--r--rts/Capability.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/rts/Capability.c b/rts/Capability.c
index 82343597ed..345bd39c0f 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)
{