From 7b8b90403e97320661ea17920a257e0bf530c206 Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Wed, 9 Aug 2006 09:59:08 +0000 Subject: [PATCH] Remove the artifical cap on the number of workers See #805. This was here to catch bugs that resulted in an infinite number of worker threads being created. However, we can't put a reasonable bound on the number of worker threads, because legitimate programs may need to create large numbers of (probably blocked) worker threads. Furthermore, the OS probably has a bound on the number of threads that a process can create in any case. --- rts/Task.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/rts/Task.c b/rts/Task.c index ef20c09..57497e4 100644 --- a/rts/Task.c +++ b/rts/Task.c @@ -28,8 +28,6 @@ Task *all_tasks = NULL; static Task *task_free_list = NULL; // singly-linked static nat taskCount; -#define DEFAULT_MAX_WORKERS 64 -static nat maxWorkers; // we won't create more workers than this static nat tasksRunning; static nat workerCount; @@ -58,11 +56,6 @@ initTaskManager (void) taskCount = 0; workerCount = 0; tasksRunning = 0; -#if defined(THREADED_RTS) - maxWorkers = DEFAULT_MAX_WORKERS * RtsFlags.ParFlags.nNodes; -#else - maxWorkers = DEFAULT_MAX_WORKERS; -#endif initialized = 1; #if defined(THREADED_RTS) newThreadLocalKey(¤tTaskKey); @@ -264,9 +257,6 @@ startWorkerTask (Capability *cap, OSThreadId tid; Task *task; - if (workerCount >= maxWorkers) { - barf("too many workers; runaway worker creation?"); - } workerCount++; // A worker always gets a fresh Task structure. -- 1.7.10.4