[mpich] MPICH primary repository branch, master, updated. v3.1b1-37-ge6fde07
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "MPICH primary repository". The branch, master has been updated via e6fde073449897f124965c87c3c73d1a35dda8c5 (commit) from 46dba93ff00afede3c624e462eb3e7ac8e10dcce (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.mpich.org/mpich.git/commitdiff/e6fde073449897f124965c87c3c73d1a35... commit e6fde073449897f124965c87c3c73d1a35dda8c5 Author: Ken Raffenetti <[email protected]> Date: Wed Sep 18 09:31:04 2013 -0500 Test for PTHREAD_PROCESS_SHARED attribute FreeBSD does not support this attribute. Including this runtime test ensures nemesis will not override the allocate_shm function pointer unless it is supported. Fixes #1926 Signed-off-by: Pavan Balaji <[email protected]> diff --git a/src/mpid/ch3/channels/nemesis/src/ch3_win_fns.c b/src/mpid/ch3/channels/nemesis/src/ch3_win_fns.c index 9d9c5ab..89ef6f9 100644 --- a/src/mpid/ch3/channels/nemesis/src/ch3_win_fns.c +++ b/src/mpid/ch3/channels/nemesis/src/ch3_win_fns.c @@ -28,11 +28,23 @@ static int MPIDI_CH3I_Win_allocate_shm(MPI_Aint size, int disp_unit, MPID_Info * int MPIDI_CH3_Win_fns_init(MPIDI_CH3U_Win_fns_t *win_fns) { int mpi_errno = MPI_SUCCESS; + int mutex_err; + pthread_mutexattr_t attr; MPIDI_STATE_DECL(MPID_STATE_MPIDI_CH3_WIN_FNS_INIT); MPIDI_RMA_FUNC_ENTER(MPID_STATE_MPIDI_CH3_WIN_FNS_INIT); - win_fns->allocate_shm = MPIDI_CH3I_Win_allocate_shm; + /* Test for PTHREAD_PROCESS_SHARED support. Some platforms do not support + * this capability even though it is a part of the pthreads core API (e.g., + * FreeBSD does not support this as of version 9.1) */ + pthread_mutexattr_init(&attr); + mutex_err = pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED); + pthread_mutexattr_destroy(&attr); + + /* Only allocate shared memory windows if we can use + * pthread_mutexattr_setpshared correctly. */ + if (!mutex_err) + win_fns->allocate_shm = MPIDI_CH3I_Win_allocate_shm; MPIDI_RMA_FUNC_EXIT(MPID_STATE_MPIDI_CH3_WIN_FNS_INIT); ----------------------------------------------------------------------- Summary of changes: src/mpid/ch3/channels/nemesis/src/ch3_win_fns.c | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-) hooks/post-receive -- MPICH primary repository
participants (1)
-
noreply@mpich.org