pthread.h: Add missing PTHREAD_RWLOCK_INITIALIZER

Joel Sherrill joel.sherrill@oarcorp.com
Fri Nov 16 11:39:00 GMT 2012


On 11/12/2012 11:51 AM, Corinna Vinschen wrote:
> On Nov 12 18:44, Ralf Corsepius wrote:
>> On 11/12/2012 06:19 PM, Joel Sherrill wrote:
>>> Hi
>>>
>>> Attached is a very simple 1 line patch which adds the
>>> missing constant PTHREAD_RWLOCK_INITIALIZER and
>>> makes it have the same value as the other similar
>>> constants.
>>>
>>> OK to commit?
>> No.
>>
>>> 2012-11-12  Joel Sherrill <joel.sherrill@oarcorp.com>
>>>
>>>      * libc/include/pthread.h: Add PTHREAD_RWLOCK_INITIALIZER.
>>>
>> Is it your intention to initialize to -1?
>>
>> If so, initialization to 0xffffffff would not return -1 on platforms
>> with size > 32 bit.
>>
>> Also, your construct would fail on platforms with sizeof(ptr) < 32bit.
> sys/types.h defines pthread_rwlock_t as __uint32_t.
>
The Open Group page I cited has the intended usage and it is NOT about a 
pointer.

        pthread_rwlock_t rwlock=PTHREAD_RWLOCK_INITIALIZER;

All PTHREAD_XXX_INITIALIZER values are defined by Open Group to be used
the same  way.  newlib's pthread.h has macros which define them exactly
the same way.

FWIW: Sorry if someone got this twice. The mail list manager rejected it 
because
the Open Group example resulted in the message being in html, not text.
> Corinna
>


-- 
Joel Sherrill, Ph.D.             Director of Research&  Development
joel.sherrill@OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
     Support Available             (256) 722-9985



More information about the Newlib mailing list