This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: wrong macro definition in pthread.h



skaller wrote:
> On Mon, 2006-02-13 at 21:27 +0900, æ åå wrote:
>> In cvs head.
>>
>> winsup/cygwin/include/pthread.h
>>
>>   #define pthread_cleanup_push(_fn, _arg) { __pthread_cleanup_handler __cleanup_handler = \
>>                                            { _fn, _arg, NULL }; \
>>                                            _pthread_cleanup_push( &__cleanup_handler );
>>   #define pthread_cleanup_pop(_execute) _pthread_cleanup_pop( _execute ); }
>>
>> incorrect '}' position.
>>
> 
>>From my man pthread_cleanup_push:
> 
> Matching  pairs of !pthread_cleanup_push! and !pthread_cleanup_pop!
> must occur in the same function, at the same level of  block  nestâ
> ing.   Actually,  !pthread_cleanup_push!  and !pthread_cleanup_pop!
> are macros, and the expansion of !pthread_cleanup_push!  introduces
> an open brace !{!  with the matching closing brace !}! being introâ
> duced by the expansion of the matching !pthread_cleanup_pop!.
This is what SUSv3 says too.

> 
> SO if this is a bug .. it is shared by Linux..:)
> 

VH

Attachment: signature.asc
Description: OpenPGP digital signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]