Blame src/util/thread/mpiu_thread.c

Packit 0848f5
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
Packit 0848f5
/*
Packit 0848f5
 *  (C) 2002 by Argonne National Laboratory.
Packit 0848f5
 *      See COPYRIGHT in top-level directory.
Packit 0848f5
 */
Packit 0848f5
Packit 0848f5
#include "mpiu_thread.h"
Packit 0848f5
Packit 0848f5
#if !defined(MPICH_IS_THREADED)
Packit 0848f5
Packit 0848f5
/* If single threaded, we preallocate this.  Otherwise, we create it */
Packit 0848f5
MPIUI_Per_thread_t MPIUI_Thread = { 0 };
Packit 0848f5
Packit 0848f5
#elif defined(MPICH_TLS_SPECIFIER)
Packit 0848f5
Packit 0848f5
MPICH_TLS_SPECIFIER MPIUI_Per_thread_t MPIUI_Thread = { 0 };
Packit 0848f5
Packit 0848f5
#else /* defined(MPICH_IS_THREADED) && !defined(MPICH_TLS_SPECIFIER) */
Packit 0848f5
Packit 0848f5
/* If we may be single threaded, we need a preallocated version to use
Packit 0848f5
 * if we are single threaded case */
Packit 0848f5
MPIUI_Per_thread_t MPIUI_ThreadSingle = { 0 };
Packit 0848f5
Packit 0848f5
/* This routine is called when a thread exits; it is passed the value
Packit 0848f5
 * associated with the key.  In our case, this is simply storage
Packit 0848f5
 * allocated with MPIU_Calloc */
Packit 0848f5
void MPIUI_Cleanup_tls(void *a)
Packit 0848f5
{
Packit 0848f5
    if (a)
Packit 0848f5
        MPIU_Free(a);
Packit 0848f5
}
Packit 0848f5
Packit 0848f5
#endif