Annotation of pkgsrc/parallel/mpi-ch/patches/patch-src_mpid_ch3_channels_nemesis_include_mpidi_ch3_impl.h, Revision 1.1
1.1 ! adam 1: $NetBSD$
! 2:
! 3: Use pthread_mutexattr_setpshared() only when available.
! 4:
! 5: --- src/mpid/ch3/channels/nemesis/include/mpidi_ch3_impl.h.orig 2013-04-15 21:03:05.000000000 +0000
! 6: +++ src/mpid/ch3/channels/nemesis/include/mpidi_ch3_impl.h
! 7: @@ -99,6 +99,7 @@ int MPIDI_CH3_SHM_Win_free(MPID_Win **wi
! 8: "**pthread_unlock %s", strerror(pt_err)); \
! 9: } while (0)
! 10:
! 11: +#ifdef _POSIX_THREAD_PROCESS_SHARED
! 12: #define MPIDI_CH3I_SHM_MUTEX_INIT(win_ptr) \
! 13: do { \
! 14: int pt_err; \
! 15: @@ -117,6 +118,23 @@ int MPIDI_CH3_SHM_Win_free(MPID_Win **wi
! 16: MPIU_ERR_CHKANDJUMP1(pt_err, mpi_errno, MPI_ERR_OTHER, "**pthread_mutex", \
! 17: "**pthread_mutex %s", strerror(pt_err)); \
! 18: } while (0);
! 19: +#else
! 20: +#define MPIDI_CH3I_SHM_MUTEX_INIT(win_ptr) \
! 21: + do { \
! 22: + int pt_err; \
! 23: + pthread_mutexattr_t attr; \
! 24: + \
! 25: + pt_err = pthread_mutexattr_init(&attr); \
! 26: + MPIU_ERR_CHKANDJUMP1(pt_err, mpi_errno, MPI_ERR_OTHER, "**pthread_mutex", \
! 27: + "**pthread_mutex %s", strerror(pt_err)); \
! 28: + pt_err = pthread_mutex_init((win_ptr)->shm_mutex, &attr); \
! 29: + MPIU_ERR_CHKANDJUMP1(pt_err, mpi_errno, MPI_ERR_OTHER, "**pthread_mutex", \
! 30: + "**pthread_mutex %s", strerror(pt_err)); \
! 31: + pt_err = pthread_mutexattr_destroy(&attr); \
! 32: + MPIU_ERR_CHKANDJUMP1(pt_err, mpi_errno, MPI_ERR_OTHER, "**pthread_mutex", \
! 33: + "**pthread_mutex %s", strerror(pt_err)); \
! 34: + } while (0);
! 35: +#endif
! 36:
! 37: #define MPIDI_CH3I_SHM_MUTEX_DESTROY(win_ptr) \
! 38: do { \
CVSweb <webmaster@jp.NetBSD.org>