diff --git a/ghc/rts/Capability.c b/ghc/rts/Capability.c index 2dec782fd90f269b34c31af41f6c73a08fddedf3..638dd4ad7e9c76c591a41f250a03042187a09cda 100644 --- a/ghc/rts/Capability.c +++ b/ghc/rts/Capability.c @@ -68,8 +68,8 @@ Condition thread_ready_cond = INIT_COND_VAR; * the number of tasks currently blocked waiting on thread_ready_cond. * (if > 0 => no need for a new task, just unblock an existing one). * - * waitForWork() takes care of keeping it up-to-date; Task.startTask() - * uses its current value. + * waitForWorkCapability() takes care of keeping it up-to-date; + * Task.startTask() uses its current value. */ nat rts_n_waiting_tasks = 0; #endif diff --git a/ghc/rts/Capability.h b/ghc/rts/Capability.h index 71359b60aaa1c610699acde3d5ceae5d4f6fff7c..8a3260ce2d01de17c4f04349fbea25baaf2f74f7 100644 --- a/ghc/rts/Capability.h +++ b/ghc/rts/Capability.h @@ -32,10 +32,14 @@ extern void initCapabilities(void); extern void grabCapability(Capability** pCap); extern void releaseCapability(Capability* cap); -#if defined(RTS_SUPPORTS_THREADS) -/* total number of available capabilities */ extern nat rts_n_free_capabilities; -extern nat rts_n_waiting_workers; +#if defined(RTS_SUPPORTS_THREADS) +/* number of worker threads waiting to do good work within + the RTS. Used by Task.c (only) to determine whether or not + new worker threads needs to be created (when an external call + is made). + */ +extern nat rts_n_waiting_workers; /* used by Task.c to determine */ extern void grabReturnCapability(Mutex* pMutex, Capability** pCap); extern void yieldToReturningWorker(Mutex* pMutex, Capability* cap);