mirror of
https://github.com/barkeser2002/flower.git
synced 2026-09-25 19:36:20 +03:00
42 lines
733 B
C++
42 lines
733 B
C++
//
|
|
// Copyright(c) 2016-2017 benikabocha.
|
|
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
|
|
//
|
|
|
|
#include "Singleton.h"
|
|
|
|
#include <cstdlib>
|
|
|
|
namespace saba
|
|
{
|
|
namespace
|
|
{
|
|
const size_t MaxFinalizerNum = 256;
|
|
size_t g_finalizerSize = 0;
|
|
|
|
SingletonFinalizer::FinalizerFunc g_finalizers[MaxFinalizerNum];
|
|
}
|
|
|
|
void SingletonFinalizer::AddFinalizer(FinalizerFunc finalizer)
|
|
{
|
|
if (g_finalizerSize >= MaxFinalizerNum)
|
|
{
|
|
exit(-1);
|
|
}
|
|
|
|
g_finalizers[g_finalizerSize] = finalizer;
|
|
g_finalizerSize += 1;
|
|
}
|
|
|
|
void SingletonFinalizer::Finalize()
|
|
{
|
|
for (size_t i = 0; i < g_finalizerSize; i++)
|
|
{
|
|
size_t idx = g_finalizerSize - i - 1;
|
|
(g_finalizers[idx])();
|
|
}
|
|
g_finalizerSize = 0;
|
|
}
|
|
|
|
}
|