diff options
author | Simon Marlow <marlowsd@gmail.com> | 2008-11-06 11:36:39 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2008-11-06 11:36:39 +0000 |
commit | 2b16fa4791b08b02df8461f3b79d0e44d72d0960 (patch) | |
tree | 53d0bba9254703d7d569e91c0f0f7b19ba8f25f8 /rts/Sparks.h | |
parent | ebfa6fde6d9797ad2434a2af73a4c85b2984e00a (diff) | |
download | haskell-2b16fa4791b08b02df8461f3b79d0e44d72d0960.tar.gz |
Run sparks in batches, instead of creating a new thread for each one
Signficantly reduces the overhead for par, which means that we can
make use of paralellism at a much finer granularity.
Diffstat (limited to 'rts/Sparks.h')
-rw-r--r-- | rts/Sparks.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/rts/Sparks.h b/rts/Sparks.h index 0d116bdbe4..96968890ba 100644 --- a/rts/Sparks.h +++ b/rts/Sparks.h @@ -73,9 +73,9 @@ StgClosure* reclaimSpark(SparkPool *pool); // if the pool is almost empty). rtsBool looksEmpty(SparkPool* deque); -StgClosure * tryStealSpark (SparkPool *pool); +StgClosure * tryStealSpark (Capability *cap); void freeSparkPool (SparkPool *pool); -void createSparkThread (Capability *cap, StgClosure *p); +void createSparkThread (Capability *cap); void traverseSparkQueue(evac_fn evac, void *user, Capability *cap); void pruneSparkQueue (evac_fn evac, void *user, Capability *cap); |