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
|