12345678910111213141516171819202122232425262728293031 |
- #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();
- /**
- * You shouldn't ever need this, unless you are writing some DLL modules,
- * which might get unloaded before application termination (nginx's modules, for example).
- * If a DLL sets exit handlers which belong to the DLL itself, these handlers point to
- * nowhere after the DLL has been unloaded, and an attempt to invoke any of those at the
- * application termination leads to a crash.
- */
- void DisableExitHandlers();
|