stlab 2.3.0
Modern, modular C++ algorithms, data structures, and concurrency primitives
Loading...
Searching...
No Matches
pre_exit.hpp File Reference

Register and run operations that must execute before program exit. More...

Go to the source code of this file.

Typedefs

using stlab::pre_exit_handler
 Function type invoked during pre_exit() (must not throw; noexcept with C++17 and later).

Functions

void stlab::stlab_pre_exit ()
 An extern "C" vector for pre-exit() to make it simpler to export the function from a shared library.
void stlab::stlab_at_pre_exit (pre_exit_handler f)
 An extern "C" vector for at_pre-exit() to make it simpler to export the function from a shared library.
void stlab::pre_exit ()
 Invoke all registered pre-exit handlers in the reverse order they are registered. It is safe to register additional handlers during this operation. Must be invoked exactly once prior to program exit.
void stlab::at_pre_exit (pre_exit_handler f)
 Register a pre-exit handler. The pre-exit-handler may not throw. With C++17 or later it is required to be noexcept.

Detailed Description

Register and run operations that must execute before program exit.

Register handlers with at_pre_exit(); call pre_exit() once before normal process termination (before std::exit() or when leaving main()). Handlers run in reverse registration order. Required when using the default executor so detached or canceled tasks do not overlap global teardown (see default_executor.hpp). std::quick_exit() is an alternative when appropriate.