diff --git a/src/threads/condition_pthread.c b/src/threads/condition_pthread.c index b55dba034e..3ecbd77dce 100644 --- a/src/threads/condition_pthread.c +++ b/src/threads/condition_pthread.c @@ -11,12 +11,12 @@ #if OMPI_HAVE_POSIX_THREADS -static void ompi_condition_construct(ompi_condition_t * c) +static void ompi_condition_construct(ompi_condition_t *c) { pthread_cond_init(&c->c_cond, NULL); } -static void ompi_condition_destruct(ompi_condition_t * c) +static void ompi_condition_destruct(ompi_condition_t *c) { pthread_cond_destroy(&c->c_cond); } diff --git a/src/threads/condition_pthread.h b/src/threads/condition_pthread.h index 35b323da91..8113e80c76 100644 --- a/src/threads/condition_pthread.h +++ b/src/threads/condition_pthread.h @@ -7,7 +7,6 @@ #include #include "threads/mutex.h" - struct ompi_condition_t { ompi_object_t super; pthread_cond_t c_cond; @@ -17,22 +16,24 @@ typedef struct ompi_condition_t ompi_condition_t; OBJ_CLASS_DECLARATION(ompi_condition_t); -static inline int ompi_condition_wait(ompi_condition_t* c, ompi_mutex_t* m) +static inline int ompi_condition_wait(ompi_condition_t *c, ompi_mutex_t *m) { - return pthread_cond_wait(&c->c_cond, &m->m_lock.thread); + return pthread_cond_wait(&c->c_cond, &m->m_lock_pthread); } -static inline int ompi_condition_timedwait(ompi_condition_t* c, ompi_mutex_t* m, const struct timespec *abstime) +static inline int ompi_condition_timedwait(ompi_condition_t *c, + ompi_mutex_t *m, + const struct timespec *abstime) { - return pthread_cond_timedwait(&c->c_cond, &m->m_lock.thread, abstime); + return pthread_cond_timedwait(&c->c_cond, &m->m_lock_pthread, abstime); } -static inline int ompi_condition_signal(ompi_condition_t* c) +static inline int ompi_condition_signal(ompi_condition_t *c) { return pthread_cond_signal(&c->c_cond); } -static inline int ompi_condition_broadcast(ompi_condition_t* c) +static inline int ompi_condition_broadcast(ompi_condition_t *c) { return pthread_cond_broadcast(&c->c_cond); } diff --git a/src/threads/condition_spinlock.c b/src/threads/condition_spinlock.c index a90b3946fc..8d8ef66383 100644 --- a/src/threads/condition_spinlock.c +++ b/src/threads/condition_spinlock.c @@ -11,15 +11,14 @@ #if (OMPI_HAVE_THREADS == 0) - -static void ompi_condition_construct(ompi_condition_t * c) +static void ompi_condition_construct(ompi_condition_t *c) { c->c_waiting = 0; c->c_signaled = 0; } -static void ompi_condition_destruct(ompi_condition_t * c) +static void ompi_condition_destruct(ompi_condition_t *c) { } diff --git a/src/threads/condition_spinlock.h b/src/threads/condition_spinlock.h index afb731e08e..fca1be7f9d 100644 --- a/src/threads/condition_spinlock.h +++ b/src/threads/condition_spinlock.h @@ -6,10 +6,8 @@ #include "threads/condition.h" #include "threads/mutex.h" -#include "threads/mutex_spinlock.h" #include "runtime/ompi_progress.h" - struct ompi_condition_t { volatile int c_waiting; volatile int c_signaled; @@ -19,17 +17,17 @@ typedef struct ompi_condition_t ompi_condition_t; OBJ_CLASS_DECLARATION(ompi_condition_t); -static inline int ompi_condition_wait(ompi_condition_t* c, ompi_mutex_t* m) +static inline int ompi_condition_wait(ompi_condition_t *c, ompi_mutex_t *m) { c->c_waiting++; - if(ompi_using_threads()) { - while(c->c_signaled == 0) { + if (ompi_using_threads()) { + while (c->c_signaled == 0) { ompi_mutex_unlock(m); ompi_progress(); ompi_mutex_lock(m); } } else { - while(c->c_signaled == 0) { + while (c->c_signaled == 0) { ompi_mutex_unlock(m); ompi_progress(); ompi_mutex_lock(m); @@ -40,20 +38,22 @@ static inline int ompi_condition_wait(ompi_condition_t* c, ompi_mutex_t* m) return 0; } -static inline int ompi_condition_timedwait(ompi_condition_t* c, ompi_mutex_t* m, const struct timespec *abstime) +static inline int ompi_condition_timedwait(ompi_condition_t *c, + ompi_mutex_t *m, + const struct timespec *abstime) { return 0; } -static inline int ompi_condition_signal(ompi_condition_t* c) +static inline int ompi_condition_signal(ompi_condition_t *c) { - if(c->c_waiting) { - c->c_signaled++; + if (c->c_waiting) { + c->c_signaled++; } return 0; } -static inline int ompi_condition_broadcast(ompi_condition_t* c) +static inline int ompi_condition_broadcast(ompi_condition_t *c) { c->c_signaled += c->c_waiting; return 0; diff --git a/src/threads/mutex.c b/src/threads/mutex.c index 4e796c91c0..936e89e076 100644 --- a/src/threads/mutex.c +++ b/src/threads/mutex.c @@ -32,17 +32,17 @@ static void ompi_mutex_destruct(ompi_mutex_t *m) static void ompi_mutex_construct(ompi_mutex_t *m) { #if OMPI_HAVE_POSIX_THREADS - pthread_mutex_init(&m->m_lock.thread, 0); + pthread_mutex_init(&m->m_lock_pthread, 0); #endif #if OMPI_SYS_ARCH_ATOMIC_H - ompi_atomic_unlock(&m->m_lock.atomic); + ompi_atomic_unlock(&m->m_lock_atomic); #endif } static void ompi_mutex_destruct(ompi_mutex_t *m) { #if OMPI_HAVE_POSIX_THREADS - pthread_mutex_destroy(&m->m_lock); + pthread_mutex_destroy(&m->m_lock_pthread); #endif } diff --git a/src/threads/mutex_unix.h b/src/threads/mutex_unix.h index 2bdb8b0b4c..785f99b136 100644 --- a/src/threads/mutex_unix.h +++ b/src/threads/mutex_unix.h @@ -26,14 +26,8 @@ struct ompi_mutex_t { ompi_object_t super; - union { -#if OMPI_HAVE_POSIX_THREADS - pthread_mutex_t thread; -#endif -#if OMPI_SYS_ARCH_ATOMIC_H - ompi_lock_t atomic; -#endif - } m_lock; + pthread_mutex_t m_lock_pthread; + ompi_lock_t m_lock_atomic; }; OBJ_CLASS_DECLARATION(ompi_mutex_t); @@ -46,35 +40,35 @@ OBJ_CLASS_DECLARATION(ompi_mutex_t); * ompi_mutex_atomic_* implemented using atomic operations */ -static inline int ompi_mutex_trylock(ompi_mutex_t * m) +static inline int ompi_mutex_trylock(ompi_mutex_t *m) { - return pthread_mutex_trylock(&m->m_lock.thread); + return pthread_mutex_trylock(&m->m_lock_pthread); } -static inline void ompi_mutex_lock(ompi_mutex_t * m) +static inline void ompi_mutex_lock(ompi_mutex_t *m) { - pthread_mutex_lock(&m->m_lock.thread); + pthread_mutex_lock(&m->m_lock_pthread); } -static inline void ompi_mutex_unlock(ompi_mutex_t * m) +static inline void ompi_mutex_unlock(ompi_mutex_t *m) { - pthread_mutex_unlock(&m->m_lock.thread); + pthread_mutex_unlock(&m->m_lock_pthread); } -static inline void ompi_mutex_atomic_lock(ompi_mutex_t * m) +static inline void ompi_mutex_atomic_lock(ompi_mutex_t *m) { - ompi_atomic_lock(&m->m_lock.atomic); + ompi_atomic_lock(&m->m_lock_atomic); } -static inline int ompi_mutex_atomic_trylock(ompi_mutex_t * m) +static inline int ompi_mutex_atomic_trylock(ompi_mutex_t *m) { - return ompi_atomic_trylock(&m->m_lock.atomic); + return ompi_atomic_trylock(&m->m_lock_atomic); } -static inline void ompi_mutex_atomic_unlock(ompi_mutex_t * m) +static inline void ompi_mutex_atomic_unlock(ompi_mutex_t *m) { - ompi_atomic_unlock(&m->m_lock.atomic); + ompi_atomic_unlock(&m->m_lock_atomic); } @@ -84,33 +78,33 @@ static inline void ompi_mutex_atomic_unlock(ompi_mutex_t * m) * ompi_mutex_* and ompi_mutex_atomic_* implemented using pthreads */ -static inline int ompi_mutex_trylock(ompi_mutex_t * m) +static inline int ompi_mutex_trylock(ompi_mutex_t *m) { - return pthread_mutex_trylock(&m->m_lock.thread); + return pthread_mutex_trylock(&m->m_lock_pthread); } -static inline void ompi_mutex_lock(ompi_mutex_t * m) +static inline void ompi_mutex_lock(ompi_mutex_t *m) { - pthread_mutex_lock(&m->m_lock.thread); + pthread_mutex_lock(&m->m_lock_pthread); } -static inline void ompi_mutex_unlock(ompi_mutex_t * m) +static inline void ompi_mutex_unlock(ompi_mutex_t *m) { - pthread_mutex_unlock(&m->m_lock.thread); + pthread_mutex_unlock(&m->m_lock_pthread); } -static inline int ompi_mutex_atomic_trylock(ompi_mutex_t * m) +static inline int ompi_mutex_atomic_trylock(ompi_mutex_t *m) { return ompi_mutex_trylock(m); } -static inline void ompi_mutex_atomic_lock(ompi_mutex_t * m) +static inline void ompi_mutex_atomic_lock(ompi_mutex_t *m) { ompi_mutex_lock(m); } -static inline void ompi_mutex_atomic_unlock(ompi_mutex_t * m) +static inline void ompi_mutex_atomic_unlock(ompi_mutex_t *m) { ompi_mutex_unlock(m); } @@ -123,33 +117,33 @@ static inline void ompi_mutex_atomic_unlock(ompi_mutex_t * m) * operations */ -static inline int ompi_mutex_trylock(ompi_mutex_t * m) +static inline int ompi_mutex_trylock(ompi_mutex_t *m) { - return ompi_atomic_trylock(&m->m_lock.atomic); + return ompi_atomic_trylock(&m->m_lock_atomic); } -static inline void ompi_mutex_lock(ompi_mutex_t * m) +static inline void ompi_mutex_lock(ompi_mutex_t *m) { - ompi_atomic_lock(&m->m_lock.atomic); + ompi_atomic_lock(&m->m_lock_atomic); } -static inline void ompi_mutex_unlock(ompi_mutex_t * m) +static inline void ompi_mutex_unlock(ompi_mutex_t *m) { - ompi_atomic_unlock(&m->m_lock.atomic); + ompi_atomic_unlock(&m->m_lock_atomic); } -static inline int ompi_mutex_atomic_trylock(ompi_mutex_t * m) +static inline int ompi_mutex_atomic_trylock(ompi_mutex_t *m) { return ompi_mutex_trylock(m); } -static inline void ompi_mutex_atomic_lock(ompi_mutex_t * m) +static inline void ompi_mutex_atomic_lock(ompi_mutex_t *m) { ompi_mutex_lock(m); } -static inline void ompi_mutex_atomic_unlock(ompi_mutex_t * m) +static inline void ompi_mutex_atomic_unlock(ompi_mutex_t *m) { ompi_mutex_unlock(m); }