|
33 | 33 |
|
34 | 34 | /* |
35 | 35 | * Every task created must have an unique ID, this function lookup the |
36 | | - * lowest number available in the tasks_map. |
| 36 | + * lowest number available in the task_map. |
37 | 37 | * |
38 | 38 | * This 'id' is used by the task interface to communicate with the engine event |
39 | 39 | * loop about some action. |
40 | 40 | */ |
41 | 41 |
|
42 | 42 | static inline int map_get_task_id(struct flb_config *config) |
43 | 43 | { |
| 44 | + int result; |
44 | 45 | int i; |
45 | | - int map_size = (sizeof(config->tasks_map) / sizeof(struct flb_task_map)); |
46 | 46 |
|
47 | | - for (i = 0; i < map_size; i++) { |
48 | | - if (config->tasks_map[i].task == NULL) { |
| 47 | + for (i = 0; i < config->task_map_size ; i++) { |
| 48 | + if (config->task_map[i].task == NULL) { |
49 | 49 | return i; |
50 | 50 | } |
51 | 51 | } |
52 | 52 |
|
| 53 | + result = flb_config_task_map_grow(config); |
| 54 | + |
| 55 | + if (result == 0) { |
| 56 | + return i; |
| 57 | + } |
| 58 | + |
53 | 59 | return -1; |
54 | 60 | } |
55 | 61 |
|
56 | 62 | static inline void map_set_task_id(int id, struct flb_task *task, |
57 | 63 | struct flb_config *config) |
58 | 64 | { |
59 | | - config->tasks_map[id].task = task; |
| 65 | + config->task_map[id].task = task; |
60 | 66 |
|
61 | 67 | } |
62 | 68 |
|
63 | 69 | static inline void map_free_task_id(int id, struct flb_config *config) |
64 | 70 | { |
65 | | - config->tasks_map[id].task = NULL; |
| 71 | + config->task_map[id].task = NULL; |
66 | 72 | } |
67 | 73 |
|
68 | 74 | void flb_task_retry_destroy(struct flb_task_retry *retry) |
@@ -250,6 +256,7 @@ static struct flb_task *task_alloc(struct flb_config *config) |
250 | 256 | flb_free(task); |
251 | 257 | return NULL; |
252 | 258 | } |
| 259 | + |
253 | 260 | map_set_task_id(task_id, task, config); |
254 | 261 |
|
255 | 262 | flb_trace("[task %p] created (id=%i)", task, task_id); |
|
0 commit comments