This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: wrong macro definition in pthread.h
- From: skaller <skaller at users dot sourceforge dot net>
- To: æ åå <hasi at cskk-sv dot co dot jp>
- Cc: cygwin at cygwin dot com
- Date: Tue, 14 Feb 2006 00:06:45 +1100
- Subject: Re: wrong macro definition in pthread.h
- References: <20060213.212717.193713030.hasi@cskk-sv.co.jp>
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!.
SO if this is a bug .. it is shared by Linux..:)
--
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/