Re: [PATCH v2] Mark win32's pthread_exit() as NORETURN
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 1, 2016, 19:44 UTC
- Message-ID
- <xmqqio166l0n.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <56D5EEE2.3080100@kdbg.org>
Johannes Sixt <j6t@kdbg.org> writes:
Show 14 quoted lines
> Am 01.03.2016 um 15:13 schrieb Johannes Schindelin: >> The pthread_exit() function is not expected to return. Ever. On Windows, >> we call ExitThread() whose documentation claims: "This function does not >> return a value.": >> >> https://msdn.microsoft.com/en-us/library/windows/desktop/ms682659 > > This is misleading: MSDN marks all functions declared void as "does > not return a value," for example, look at EnterCriticalSection: > > https://msdn.microsoft.com/en-us/library/windows/desktop/ms682608 > > For this reason, I actually prefer your version 1 patch without the > explanation.
;-)
Show 11 quoted lines
>> -static inline int pthread_exit(void *ret) >> +static inline int NORETURN pthread_exit(void *ret) > > I would have written it as > > #ifdef __GNUC__ > __attribute__((__noreturn__)) > #endif > static inline int pthread_exit(void *ret) ... > > but I can live with your version as long as it compiles.
Either way, let's make sure that the final version returns "void", cf.
http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_exit.html
Thanks.