logger->Flush();
}
- Timer::Uninitialize();
+ UninitializeBase();
#ifdef _DEBUG
exit(rc);
#endif /* _WIN32 */
Utility::ExecuteDeferredInitializers();
+
+ /* make sure the thread pool gets initialized */
+ GetTP();
+
+ Timer::Initialize();
+}
+
+void Application::UninitializeBase(void)
+{
+ Timer::Uninitialize();
+
+ GetTP().Stop();
}
/**
DynamicObject::StopObjects();
Application::GetInstance()->OnShutdown();
-#ifdef _DEBUG
- GetTP().Stop();
- m_ShuttingDown = false;
-
- Timer::Uninitialize();
-#endif /* _DEBUG */
+ UninitializeBase();
}
void Application::OnShutdown(void)
~Application(void);
static void InitializeBase(void);
+ static void UninitializeBase(void);
static Application::Ptr GetInstance(void);
boost::signals2::signal<void(const Timer::Ptr&)> OnTimerExpired;
- static void Initialize(void);
- static void Uninitialize(void);
-
class Holder {
public:
Holder(Timer *timer)
void Call();
static void TimerThreadProc(void);
+
+ static void Initialize(void);
+ static void Uninitialize(void);
+
+ friend class Application;
};
}
InitLibBase(void)
{
Application::InitializeBase();
- Timer::Initialize();
}
~InitLibBase(void)
{
- Timer::Uninitialize();
+ Application::UninitializeBase();
}
};