From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29785 invoked by alias); 30 Oct 2004 18:43:06 -0000 Mailing-List: contact pthreads-win32-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: pthreads-win32-owner@sources.redhat.com Received: (qmail 29776 invoked from network); 30 Oct 2004 18:43:05 -0000 Received: from unknown (HELO hotmail.com) (64.4.27.41) by sourceware.org with SMTP; 30 Oct 2004 18:43:05 -0000 Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Sat, 30 Oct 2004 11:43:01 -0700 Received: from 209.226.98.90 by by8fd.bay8.hotmail.msn.com with HTTP; Sat, 30 Oct 2004 18:42:29 GMT X-Originating-IP: [209.226.98.90] X-Originating-Email: [dany_joly@hotmail.com] X-Sender: dany_joly@hotmail.com From: "Dany Joly" To: pthreads-win32@sources.redhat.com Bcc: Subject: PThread Win32 problem with pthread_cleanup_push / pop Date: Sat, 30 Oct 2004 18:43:00 -0000 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed Message-ID: X-OriginalArrivalTime: 30 Oct 2004 18:43:01.0426 (UTC) FILETIME=[4891E920:01C4BEB0] X-SW-Source: 2004/txt/msg00121.txt.bz2 Hi, I am unable to compile a VC++project (with .NET 2003 and 6.0) that uses the pthread_cleanup_push and pthread_cleanup_pop macro defined in pthread.h without replacing the following code at line 686 of pthread.h: Previous ( '}' seems to be missing): #ifdef __CLEANUP_C /* * C implementation of PThreads cancel cleanup */ #define pthread_cleanup_push( _rout, _arg ) \ { \ ptw32_cleanup_t _cleanup; \ \ ptw32_push_cleanup( &_cleanup, (ptw32_cleanup_callback_t) (_rout), (_arg) ); \ #define pthread_cleanup_pop( _execute ) \ (void) ptw32_pop_cleanup( _execute ); \ } #else /* __CLEANUP_C */ New (only added '}' at the end of the macro): #ifdef __CLEANUP_C /* * C implementation of PThreads cancel cleanup */ #define pthread_cleanup_push( _rout, _arg ) \ { \ ptw32_cleanup_t _cleanup; \ \ ptw32_push_cleanup( &_cleanup, (ptw32_cleanup_callback_t) (_rout), (_arg) ); \ } #define pthread_cleanup_pop( _execute ) \ { \ (void) ptw32_pop_cleanup( _execute ); \ } #else /* __CLEANUP_C */ I compared the header with older versions from 2002 and this has been unchanged for 2 years. Is it really a bug or something I don't understand? Thank you, Dany