diff options
Diffstat (limited to 'rts/Task.c')
-rw-r--r-- | rts/Task.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/rts/Task.c b/rts/Task.c index 9a658e019c..253520f909 100644 --- a/rts/Task.c +++ b/rts/Task.c @@ -36,7 +36,6 @@ uint32_t peakWorkerCount; static int tasksInitialized = 0; static void freeTask (Task *task); -static Task * allocTask (void); static Task * newTask (rtsBool); #if defined(THREADED_RTS) @@ -117,8 +116,7 @@ freeTaskManager (void) return tasksRunning; } -static Task * -allocTask (void) +Task* getTask (void) { Task *task; @@ -209,7 +207,7 @@ newTask (rtsBool worker) task->cap = NULL; task->worker = worker; - task->stopped = rtsFalse; + task->stopped = rtsTrue; task->running_finalizers = rtsFalse; task->n_spare_incalls = 0; task->spare_incalls = NULL; @@ -304,7 +302,7 @@ newBoundTask (void) stg_exit(EXIT_FAILURE); } - task = allocTask(); + task = getTask(); task->stopped = rtsFalse; @@ -452,6 +450,7 @@ startWorkerTask (Capability *cap) // A worker always gets a fresh Task structure. task = newTask(rtsTrue); + task->stopped = rtsFalse; // The lock here is to synchronise with taskStart(), to make sure // that we have finished setting up the Task structure before the @@ -499,7 +498,7 @@ void rts_setInCallCapability ( int preferred_capability, int affinity USED_IF_THREADS) { - Task *task = allocTask(); + Task *task = getTask(); task->preferred_capability = preferred_capability; #ifdef THREADED_RTS |