Perhaps I was wrong -- I thought we had no static initializer because there was 
no static initializer for mutexes in windows.  


On Jun 7, 2013, at 9:28 AM, George Bosilca <bosi...@icl.utk.edu> wrote:

> Im curious to know why Windows support is to be blamed for the lack of such 
> functionality?
> 
>  George.
> 
> On Jun 7, 2013, at 18:08 , Jeff Squyres (jsquyres) <jsquy...@cisco.com> wrote:
> 
>> Nathan forgot to mention that we didn't have this before because of Windows. 
>>  But now we don't have Windows support, so...
>> 
>> 
>> On Jun 7, 2013, at 9:01 AM, "Hjelm, Nathan T" <hje...@lanl.gov> wrote:
>> 
>>> What: Add a static initializer for opal_mutex_t for both posix and solaris 
>>> threads.
>>> 
>>> Why: Enables the use of opal locks that don't have to be OBJ_CONSTRUCT'ed.
>>> 
>>> When: This is a trivial addition but I would like some review/testing of 
>>> the code (I don't have solaris). Setting timeout to Tuesday, June 11, 2013
>>> 
>>> 
>>> diff --git a/opal/threads/mutex_unix.h b/opal/threads/mutex_unix.h
>>> index 27528e6..28b1744 100644
>>> --- a/opal/threads/mutex_unix.h
>>> +++ b/opal/threads/mutex_unix.h
>>> @@ -81,6 +81,25 @@ OPAL_DECLSPEC OBJ_CLASS_DECLARATION(opal_mutex_t);
>>> * POSIX threads
>>> ************************************************************************/
>>> 
>>> +#if !OPAL_ENABLE_MULTI_THREADS && OPAL_ENABLE_DEBUG
>>> +#define OPAL_MUTEX_STATIC_INIT                      \
>>> +  {                                                 \
>>> +      .super = OPAL_OBJ_STATIC_INIT(opal_object_t), \
>>> +      .m_lock_pthread = PTHREAD_MUTEX_INITIALIZER,  \
>>> +      .m_lock_debug = 0,                            \
>>> +      .m_lock_file = NULL,                          \
>>> +      .m_lock_line = 0,                             \
>>> +      .m_lock_atomic = 0                            \
>>> +  }
>>> +#else
>>> +#define OPAL_MUTEX_STATIC_INIT                      \
>>> +  {                                                 \
>>> +      .super = OPAL_OBJ_STATIC_INIT(opal_object_t), \
>>> +      .m_lock_pthread = PTHREAD_MUTEX_INITIALIZER,  \
>>> +      .m_lock_atomic = 0                            \
>>> +  }
>>> +#endif
>>> +
>>> static inline int opal_mutex_trylock(opal_mutex_t *m)
>>> {
>>> #if OPAL_ENABLE_DEBUG
>>> @@ -130,6 +149,25 @@ static inline void opal_mutex_unlock(opal_mutex_t *m)
>>> * Solaris threads
>>> ************************************************************************/
>>> 
>>> +#if !OPAL_ENABLE_MULTI_THREADS && OPAL_ENABLE_DEBUG
>>> +#define OPAL_MUTEX_STATIC_INIT                      \
>>> +  {                                                 \
>>> +      .super = OPAL_OBJ_STATIC_INIT(opal_object_t), \
>>> +      .m_lock_solaris = DEFAULTMUTEX,               \
>>> +      .m_lock_debug = 0,                            \
>>> +      .m_lock_file = NULL,                          \
>>> +      .m_lock_line = 0,                             \
>>> +      .m_lock_atomic = 0                            \
>>> +  }
>>> +#else
>>> +#define OPAL_MUTEX_STATIC_INIT                      \
>>> +  {                                                 \
>>> +      .super = OPAL_OBJ_STATIC_INIT(opal_object_t), \
>>> +      .m_lock_solaris = DEFAULTMUTEX,               \
>>> +      .m_lock_atomic = 0                            \
>>> +  }
>>> +#endif
>>> +
>>> 
>>> static inline int opal_mutex_trylock(opal_mutex_t *m)
>>> {
>>> 
>>> _______________________________________________
>>> devel mailing list
>>> de...@open-mpi.org
>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>> 
>> 
>> -- 
>> Jeff Squyres
>> jsquy...@cisco.com
>> For corporate legal information go to: 
>> http://www.cisco.com/web/about/doing_business/legal/cri/
>> 
>> 
>> _______________________________________________
>> devel mailing list
>> de...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
> 
> 
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to