From dad6a11beb5e43d9000cec8814461019dd6335af Mon Sep 17 00:00:00 2001 From: David Ozog Date: Tue, 30 Apr 2024 13:06:16 -0400 Subject: [PATCH] teams: preallocate num_contexts if config_mask set --- src/shmem_team.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/shmem_team.c b/src/shmem_team.c index 9944a938..cf48eea3 100644 --- a/src/shmem_team.c +++ b/src/shmem_team.c @@ -338,6 +338,7 @@ int shmem_internal_team_split_strided(shmem_internal_team_t *parent_team, int PE if (config_mask == 0) { shmem_team_config_t default_config; default_config.num_contexts = 0; + myteam->contexts_len = 0; myteam->config_mask = 0; memcpy(&myteam->config, &default_config, sizeof(shmem_team_config_t)); } else { @@ -345,12 +346,13 @@ int shmem_internal_team_split_strided(shmem_internal_team_t *parent_team, int PE RAISE_WARN_MSG("Invalid team_split_strided config_mask (%ld)\n", config_mask); return -1; } else { - myteam->config = *config; - myteam->config_mask = config_mask; + myteam->config = *config; + myteam->config_mask = config_mask; + myteam->contexts_len = config->num_contexts; + myteam->contexts = malloc(config->num_contexts * sizeof(shmem_transport_ctx_t*)); } } - myteam->contexts_len = 0; myteam->psync_idx = -1; shmem_internal_op_to_all(psync_pool_avail_reduced,