Don't refresh text events until application is initialized (before signals are connected)

This commit is contained in:
Dan Paulat 2022-11-16 00:12:03 -06:00
parent dabcf1114e
commit e0dceda2d2
5 changed files with 81 additions and 3 deletions

View file

@ -0,0 +1,48 @@
#include <scwx/qt/main/application.hpp>
#include <scwx/util/logger.hpp>
namespace scwx
{
namespace qt
{
namespace main
{
namespace Application
{
static const std::string logPrefix_ = "scwx::qt::main::application";
static const auto logger_ = util::Logger::Create(logPrefix_);
static std::mutex initializationMutex_ {};
static std::condition_variable initializationCondition_ {};
static bool initialized_ {false};
void FinishInitialization()
{
logger_->debug("Application initialization finished");
// Set initialized to true
std::unique_lock lock(initializationMutex_);
initialized_ = true;
lock.unlock();
// Notify any threads waiting for initialization
initializationCondition_.notify_all();
}
void WaitForInitialization()
{
std::unique_lock lock(initializationMutex_);
// While not yet initialized
while (!initialized_)
{
// Wait for initialization
initializationCondition_.wait(lock);
}
}
} // namespace Application
} // namespace main
} // namespace qt
} // namespace scwx