Merge pull request #2299 from alex-mikheev/topic/oshmem_init_fix
OSHMEM: fixes crash during initialization
Этот коммит содержится в:
Коммит
83e3323646
@ -149,13 +149,17 @@ int oshmem_shmem_init(int argc, char **argv, int requested, int *provided)
|
|||||||
if (!ompi_mpi_initialized && !ompi_mpi_finalized) {
|
if (!ompi_mpi_initialized && !ompi_mpi_finalized) {
|
||||||
ret = ompi_mpi_init(argc, argv, requested, provided);
|
ret = ompi_mpi_init(argc, argv, requested, provided);
|
||||||
}
|
}
|
||||||
PMPI_Comm_dup(MPI_COMM_WORLD, &oshmem_comm_world);
|
|
||||||
|
|
||||||
if (OSHMEM_SUCCESS == ret) {
|
if (OSHMEM_SUCCESS != ret) {
|
||||||
ret = _shmem_init(argc, argv, requested, provided);
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OSHMEM_SUCCESS == ret) {
|
PMPI_Comm_dup(MPI_COMM_WORLD, &oshmem_comm_world);
|
||||||
|
ret = _shmem_init(argc, argv, requested, provided);
|
||||||
|
|
||||||
|
if (OSHMEM_SUCCESS != ret) {
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
oshmem_shmem_initialized = true;
|
oshmem_shmem_initialized = true;
|
||||||
|
|
||||||
if (OSHMEM_SUCCESS != shmem_lock_init()) {
|
if (OSHMEM_SUCCESS != shmem_lock_init()) {
|
||||||
@ -171,14 +175,12 @@ int oshmem_shmem_init(int argc, char **argv, int requested, int *provided)
|
|||||||
pthread_t thread_id;
|
pthread_t thread_id;
|
||||||
int perr;
|
int perr;
|
||||||
perr = pthread_create(&thread_id, NULL, &shmem_opal_thread, NULL);
|
perr = pthread_create(&thread_id, NULL, &shmem_opal_thread, NULL);
|
||||||
if (perr != 0)
|
if (0 != perr) {
|
||||||
{
|
SHMEM_API_ERROR("cannot create opal thread for SHMEM");
|
||||||
SHMEM_API_ERROR("cannot creat opal thread for SHMEM");
|
|
||||||
return OSHMEM_ERROR;
|
return OSHMEM_ERROR;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
|
||||||
#ifdef SIGUSR1
|
#ifdef SIGUSR1
|
||||||
signal(SIGUSR1,sighandler__SIGUSR1);
|
signal(SIGUSR1,sighandler__SIGUSR1);
|
||||||
signal(SIGTERM,sighandler__SIGTERM);
|
signal(SIGTERM,sighandler__SIGTERM);
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user