Коммит
3d77abaa1f
@ -98,6 +98,10 @@ fi
|
|||||||
AC_DEFINE_UNQUOTED(OSHMEM_PARAM_CHECK, $shmem_param_check,
|
AC_DEFINE_UNQUOTED(OSHMEM_PARAM_CHECK, $shmem_param_check,
|
||||||
[Whether we want to check OSHMEM parameters always or never])
|
[Whether we want to check OSHMEM parameters always or never])
|
||||||
|
|
||||||
|
#
|
||||||
|
# check for on_exit
|
||||||
|
#
|
||||||
|
AC_CHECK_FUNCS([on_exit])
|
||||||
|
|
||||||
#
|
#
|
||||||
# OSHMEM profiling support
|
# OSHMEM profiling support
|
||||||
|
@ -197,6 +197,7 @@ static void* shmem_opal_thread(void* argc)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
int inGlobalExit;
|
int inGlobalExit;
|
||||||
|
int inGlobalExit_Status;
|
||||||
|
|
||||||
static void sighandler__SIGUSR1(int signum)
|
static void sighandler__SIGUSR1(int signum)
|
||||||
{
|
{
|
||||||
|
@ -22,10 +22,15 @@
|
|||||||
#include "oshmem/shmem/c/profile/defines.h"
|
#include "oshmem/shmem/c/profile/defines.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern int inGlobalExit_Status;
|
||||||
|
|
||||||
void shmem_finalize(void)
|
void shmem_finalize(void)
|
||||||
{
|
{
|
||||||
OPAL_CR_FINALIZE_LIBRARY();
|
OPAL_CR_FINALIZE_LIBRARY();
|
||||||
|
if (inGlobalExit_Status != 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
oshmem_shmem_finalize();
|
oshmem_shmem_finalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,12 +29,19 @@
|
|||||||
#include "oshmem/shmem/c/profile/defines.h"
|
#include "oshmem/shmem/c/profile/defines.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern int inGlobalExit_Status;
|
||||||
|
|
||||||
void start_pes(int npes)
|
void start_pes(int npes)
|
||||||
{
|
{
|
||||||
/* spec says that npes are ignored for now */
|
/* spec says that npes are ignored for now */
|
||||||
shmem_init();
|
shmem_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void shmem_onexit(int exitcode, void *arg)
|
||||||
|
{
|
||||||
|
inGlobalExit_Status = exitcode;
|
||||||
|
}
|
||||||
|
|
||||||
void shmem_init(void)
|
void shmem_init(void)
|
||||||
{
|
{
|
||||||
int err = OSHMEM_SUCCESS;
|
int err = OSHMEM_SUCCESS;
|
||||||
@ -56,5 +63,8 @@ void shmem_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
OPAL_CR_INIT_LIBRARY();
|
OPAL_CR_INIT_LIBRARY();
|
||||||
|
#if HAVE_ON_EXIT
|
||||||
|
on_exit(shmem_onexit, NULL);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user