Re: [PATCH v2] Mark win32's pthread_exit() as NORETURN
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Mar 2, 2016, 19:10 UTC
- Message-ID
- <alpine.DEB.2.20.1603022008240.3152@virtualbox>
- In-Reply-To
- <xmqqio166l0n.fsf@gitster.mtv.corp.google.com>
Hi,
On Tue, 1 Mar 2016, Junio C Hamano wrote:
Show 18 quoted lines
> Johannes Sixt <j6t@kdbg.org> writes: > > > 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. > > ;-)
Well, I really like to have that link so I can find it very easily myself by simply inspecting the Git log. And the explanation itself was easily fixed.
Show 17 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
Fixed, too, in the upcoming v3.
Ciao, Dscho