Skip to content

Commit cdace68

Browse files
committed
Outline constructor for thread-local data
Signed-off-by: Joseph Schuchart <[email protected]>
1 parent ca79fa1 commit cdace68

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

ompi/mpiext/continue/c/continuation.c

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -206,24 +206,28 @@ struct thread_local_data_t {
206206
};
207207
typedef struct thread_local_data_t thread_local_data_t;
208208

209+
static void init_tl_data(thread_local_data_t* tld)
210+
{
211+
OBJ_CONSTRUCT(&tld->thread_progress_list, opal_list_t);
212+
OBJ_CONSTRUCT(&tld->tmplist, opal_list_t);
213+
tld->is_initialized = true;
214+
215+
}
216+
209217
static __opal_attribute_always_inline__ inline
210218
thread_local_data_t* get_tl_data()
211219
{
212220
static opal_thread_local thread_local_data_t tl_data = { .in_progress = false, .is_initialized = false };
213221
/* process global tl_data if threads are disabled */
214222
static thread_local_data_t gl_data = { .in_progress = false, .is_initialized = false };
215223

216-
thread_local_data_t* tld;
224+
thread_local_data_t* tld = &gl_data;
217225
if (opal_using_threads()) {
218226
tld = &tl_data;
219-
} else {
220-
tld = &gl_data;
221227
}
222228

223229
if (OPAL_UNLIKELY(!tld->is_initialized)) {
224-
OBJ_CONSTRUCT(&tld->thread_progress_list, opal_list_t);
225-
OBJ_CONSTRUCT(&tld->tmplist, opal_list_t);
226-
tld->is_initialized = true;
230+
init_tl_data(tld);
227231
}
228232
return tld;
229233
}
@@ -242,7 +246,7 @@ int ompi_continue_progress_request_n(ompi_cont_request_t *cont_req,
242246
static inline
243247
int ompi_continue_check_request_error_abort(ompi_request_t *req);
244248

245-
static inline
249+
static
246250
void ompi_continue_cont_release(ompi_continuation_t *cont, int rc)
247251
{
248252
ompi_cont_request_t *cont_req = cont->cont_req;

0 commit comments

Comments
 (0)