Commit 1b555c0e authored by Pedro Gonnet's avatar Pedro Gonnet
Browse files

Use a named value `threadpool_auto_chunk_size` instead of just passing zero to `threadpool_map`.

parent 2b948447
......@@ -252,7 +252,7 @@ void threadpool_init(struct threadpool *tp, int num_threads) {
* @param N Number of elements in @c map_data.
* @param stride Size, in bytes, of each element of @c map_data.
* @param chunk Number of map data elements to pass to the function at a time,
* or zero to choose the number automatically.
* or #threadpool_auto_chunk_size to choose the number automatically.
* @param extra_data Addtitional pointer that will be passed to the mapping
* function, may contain additional data.
*/
......@@ -278,10 +278,8 @@ void threadpool_map(struct threadpool *tp, threadpool_map_function map_function,
tp->map_data_stride = stride;
tp->map_data_size = N;
tp->map_data_count = 0;
tp->map_data_chunk =
chunk ? chunk
: max((int)(N / (tp->num_threads * threadpool_default_chunk_ratio)),
1);
tp->map_data_chunk = (chunk == threadpool_auto_chunk_size) ?
max((int)(N / (tp->num_threads * threadpool_default_chunk_ratio)), 1) : chunk;
tp->map_function = map_function;
tp->map_data = map_data;
tp->map_extra_data = extra_data;
......
......@@ -32,6 +32,7 @@
/* Local defines. */
#define threadpool_log_initial_size 1000
#define threadpool_default_chunk_ratio 7
#define threadpool_auto_chunk_size 0
/* Function type for mappings. */
typedef void (*threadpool_map_function)(void *map_data, int num_elements,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment