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