#pragma once #include "defaults.h" using TAtExitFunc = void (*)(void*); using TTraditionalAtExitFunc = void (*)(); void AtExit(TAtExitFunc func, void* ctx); void AtExit(TAtExitFunc func, void* ctx, size_t priority); void AtExit(TTraditionalAtExitFunc func); void AtExit(TTraditionalAtExitFunc func, size_t priority); bool ExitStarted(); /** * Generally it's a bad idea to call this method except for some rare cases, * like graceful python DLL module unload. * This function is not threadsafe. * Calls in the moment when application is not terminating - bad idea. */ void ManualRunAtExitFinalizers();