pthread.h: typo in #define pthread_cleanup_push/pthread_cleanup_pop

Daniel Eischen deischen at freebsd.org
Tue Nov 24 21:29:35 UTC 2009


On Wed, 25 Nov 2009, Mark Andrews wrote:

>
> Report it using "send-pr".  That way the problem will make its way into the
> bug tracking system.
>
> In message <86aayc7z4g.fsf at zhuzha.ua1>, Mikolaj Golub writes:
>> Hi,
>>
>> I have problems with compiling our application under 8.0.
>>
>> It fails due to these definitions in pthread.h that look like a typo or
>> incorrectly applied patch:

Did someone already reply to this?

I think the problem is in your application.  You cannot
have push and pop at different nesting levels.  The
start brace in the push is ended by the end brace in
pop on purpose.  It is to enforce nesting levels.

>>
>>     170 #define         pthread_cleanup_push(cleanup_routine, cleanup_arg)
>>        \
>>     171                 {
>>        \
>>     172                         struct _pthread_cleanup_info __cleanup_info__;
>>        \
>>     173                         __pthread_cleanup_push_imp(cleanup_routine, clean
>> up_arg,\
>>     174                                 &__cleanup_info__);
>>        \
>>     175                         {
>>     176
>>     177 #define         pthread_cleanup_pop(execute)
>>        \
>>     178                         }
>>        \
>>     179                         __pthread_cleanup_pop_imp(execute);
>>        \
>>     180                 }

-- 
DE


More information about the freebsd-stable mailing list