Skip to content

Commit

Permalink
sharedfp/sm: close the named semaphore
Browse files Browse the repository at this point in the history
in case a named semaphore is used, it is necessary to close the semaphore to remove
all sm segments. sem_unlink just removes the name references once all proceeses have closed
the sem.

Fixes issue: #4336

Signed-off-by: Edgar Gabriel <[email protected]>

sharedfp/sm: unlink only needs to be called by one process

Signed-off-by: Edgar Gabriel <[email protected]>
  • Loading branch information
edgargabriel committed Oct 18, 2017
1 parent 27eb401 commit 4d995bd
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion ompi/mca/sharedfp/sm/sharedfp_sm_file_open.c
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,12 @@ int mca_sharedfp_sm_file_open (struct ompi_communicator_t *comm,

comm->c_coll->coll_barrier (comm, comm->c_coll->coll_barrier_module );

#if defined(HAVE_SEM_OPEN)
if ( 0 == rank ) {
sem_unlink ( sm_data->sem_name);
}
#endif

return err;
}

Expand Down Expand Up @@ -263,7 +269,7 @@ int mca_sharedfp_sm_file_close (mca_io_ompio_file_t *fh)
if (file_data->sm_offset_ptr) {
/* destroy semaphore */
#if defined(HAVE_SEM_OPEN)
sem_unlink (file_data->sem_name);
sem_close ( file_data->mutex);
free (file_data->sem_name);
#elif defined(HAVE_SEM_INIT)
sem_destroy(&file_data->sm_offset_ptr->mutex);
Expand Down

0 comments on commit 4d995bd

Please sign in to comment.