blob: 88e1b3ac49ddc4ec556e57d41a2ac0b6a14298c5 [file]
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <stdlib.h>
void (__cdecl *__mingw_prepare_thread_local_exe_atexit_callback_ptr)(void) __attribute__((common)); /* tentative */
extern void (__cdecl *__MINGW_IMP_SYMBOL(__msvcrt_exit))(int code) __MINGW_ATTRIB_NORETURN;
__MINGW_ATTRIB_NORETURN void __cdecl exit(int code)
{
/* __mingw_prepare_thread_local_exe_atexit_callback_ptr is thread safe and
* also can be called multiple times. Registration is done under CRT lock
* and execution of the registered callback is done exactly once. */
if (__mingw_prepare_thread_local_exe_atexit_callback_ptr)
__mingw_prepare_thread_local_exe_atexit_callback_ptr();
__MINGW_IMP_SYMBOL(__msvcrt_exit)(code);
}
typeof(exit) *__MINGW_IMP_SYMBOL(exit) = exit;