48 lines
783 B
C
48 lines
783 B
C
/*
|
|
Raydium - CQFD Corp.
|
|
http://raydium.org/
|
|
License: GPL - GNU General Public License, see "gpl.txt" file.
|
|
*/
|
|
|
|
#ifndef DONT_INCLUDE_HEADERS
|
|
#include "index.h"
|
|
#else
|
|
#include "headers/atexit.h"
|
|
#endif
|
|
|
|
#include "atexit.h"
|
|
|
|
int raydium_atexit(void (*func)(void))
|
|
{
|
|
if(raydium_atexit_index==RAYDIUM_MAX_ATEXIT_FUNCTIONS)
|
|
{
|
|
raydium_log("atexit: no more free handlers (%i max)",RAYDIUM_MAX_ATEXIT_FUNCTIONS);
|
|
return -1;
|
|
}
|
|
|
|
raydium_atexit_functions[raydium_atexit_index++]=func;
|
|
return 0;
|
|
}
|
|
|
|
void raydium_atexit_call(void)
|
|
{
|
|
int i;
|
|
void (*f)(void);
|
|
|
|
for(i=raydium_atexit_index-1;i>=0;i--)
|
|
{
|
|
f=raydium_atexit_functions[i];
|
|
f();
|
|
}
|
|
}
|
|
|
|
void raydium_atexit_init(void)
|
|
{
|
|
raydium_atexit_index=0;
|
|
|
|
#ifndef RAYDLL
|
|
atexit(raydium_atexit_call);
|
|
#endif
|
|
}
|
|
|