aboutsummaryrefslogtreecommitdiffstats
path: root/util/system/atexit.h
blob: a4343d5c6027b6e4abbf542eda08b35da9261df0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#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();