2023-04-05 18:42:02 -06:00
|
|
|
#ifndef Py_INTERNAL_ATEXIT_H
|
|
|
|
|
#define Py_INTERNAL_ATEXIT_H
|
2023-12-07 14:33:40 -05:00
|
|
|
|
2023-04-05 18:42:02 -06:00
|
|
|
#ifdef __cplusplus
|
|
|
|
|
extern "C" {
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef Py_BUILD_CORE
|
|
|
|
|
# error "this header requires Py_BUILD_CORE define"
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-16 14:31:44 -05:00
|
|
|
#ifdef Py_GIL_DISABLED
|
|
|
|
|
# define _PyAtExit_LockCallbacks(state) PyMutex_Lock(&state->ll_callbacks_lock);
|
|
|
|
|
# define _PyAtExit_UnlockCallbacks(state) PyMutex_Unlock(&state->ll_callbacks_lock);
|
|
|
|
|
#else
|
|
|
|
|
# define _PyAtExit_LockCallbacks(state)
|
|
|
|
|
# define _PyAtExit_UnlockCallbacks(state)
|
|
|
|
|
#endif
|
|
|
|
|
|
2024-04-24 10:18:24 -06:00
|
|
|
// Export for '_interpchannels' shared extension
|
2023-07-04 11:41:43 +02:00
|
|
|
PyAPI_FUNC(int) _Py_AtExit(
|
|
|
|
|
PyInterpreterState *interp,
|
|
|
|
|
atexit_datacallbackfunc func,
|
|
|
|
|
void *data);
|
2023-04-05 18:42:02 -06:00
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
#endif /* !Py_INTERNAL_ATEXIT_H */
|