1
1

Merge pull request #4982 from xinzhao3/topic/shmem-final

ompi/oshmem: fix bug in shmem_finalize.
Этот коммит содержится в:
Joshua Ladd 2018-04-04 08:27:55 -04:00 коммит произвёл GitHub
родитель 0e6966fb4d 4aad386c2b
Коммит e87cb25711
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 9 добавлений и 16 удалений

Просмотреть файл

@ -58,30 +58,29 @@
#include "oshmem/shmem/shmem_lock.h"
#include "oshmem/runtime/oshmem_shmem_preconnect.h"
extern int oshmem_shmem_globalexit_status;
static int _shmem_finalize(void);
int oshmem_shmem_finalize(void)
{
int ret = OSHMEM_SUCCESS;
static int32_t finalize_has_already_started = 0;
int32_t _tmp = 0;
if (opal_atomic_compare_exchange_strong_32 (&finalize_has_already_started, &_tmp, 1)
&& oshmem_shmem_initialized && !oshmem_shmem_aborted) {
if (oshmem_shmem_initialized && !oshmem_shmem_aborted) {
/* Should be called first because ompi_mpi_finalize makes orte and opal finalization */
ret = _shmem_finalize();
if ((OSHMEM_SUCCESS == ret) && ompi_mpi_initialized
&& !ompi_mpi_finalized) {
PMPI_Comm_free(&oshmem_comm_world);
ret = ompi_mpi_finalize();
}
if (OSHMEM_SUCCESS == ret) {
oshmem_shmem_initialized = false;
}
}
if ((OSHMEM_SUCCESS == ret) && ompi_mpi_initialized
&& !ompi_mpi_finalized && oshmem_shmem_globalexit_status == 0) {
PMPI_Comm_free(&oshmem_comm_world);
ret = ompi_mpi_finalize();
}
return ret;
}

Просмотреть файл

@ -22,15 +22,9 @@
#include "oshmem/shmem/c/profile/defines.h"
#endif
extern int oshmem_shmem_globalexit_status;
void shmem_finalize(void)
{
OPAL_CR_FINALIZE_LIBRARY();
if (oshmem_shmem_globalexit_status != 0)
{
return;
}
oshmem_shmem_finalize();
}