Thread optimization
This commit is contained in:
parent
0a0d6ae5e6
commit
e8c915374b
2
deps/protobuf
vendored
2
deps/protobuf
vendored
@ -1 +1 @@
|
||||
Subproject commit 40ff94ebef494e2e16107ce2965215ae67c031c1
|
||||
Subproject commit 18a9140f3308272313a9642af58ab0051ac09fd2
|
@ -80,15 +80,13 @@ namespace Components
|
||||
|
||||
Localization::Set("MPUI_SECURITY_INCREASE_MESSAGE", Utils::VA("Increasing security level from %d to %d (est. %s)", Auth::GetSecurityLevel(), Auth::TokenContainer.targetLevel, Utils::FormatTimeSpan(static_cast<int>(mseconds)).data()));
|
||||
}
|
||||
else if(Auth::TokenContainer.thread)
|
||||
else
|
||||
{
|
||||
if (Auth::TokenContainer.thread->joinable())
|
||||
if (Auth::TokenContainer.thread.joinable())
|
||||
{
|
||||
Auth::TokenContainer.thread->join();
|
||||
Auth::TokenContainer.thread.join();
|
||||
}
|
||||
|
||||
delete Auth::TokenContainer.thread;
|
||||
Auth::TokenContainer.thread = nullptr;
|
||||
Auth::TokenContainer.generating = false;
|
||||
|
||||
Auth::StoreKey();
|
||||
@ -208,7 +206,7 @@ namespace Components
|
||||
Command::Execute("openmenu security_increase_popmenu", true);
|
||||
|
||||
// Start thread
|
||||
Auth::TokenContainer.thread = new std::thread([&level] ()
|
||||
Auth::TokenContainer.thread = std::thread([&level] ()
|
||||
{
|
||||
Auth::TokenContainer.generating = true;
|
||||
Auth::TokenContainer.hashes = 0;
|
||||
@ -293,7 +291,6 @@ namespace Components
|
||||
{
|
||||
Auth::TokenContainer.cancel = false;
|
||||
Auth::TokenContainer.generating = false;
|
||||
Auth::TokenContainer.thread = nullptr;
|
||||
|
||||
Localization::Set("MPUI_SECURITY_INCREASE_MESSAGE", "");
|
||||
|
||||
@ -428,15 +425,9 @@ namespace Components
|
||||
Auth::TokenContainer.generating = false;
|
||||
|
||||
// Terminate thread
|
||||
if (Auth::TokenContainer.thread)
|
||||
if (Auth::TokenContainer.thread.joinable())
|
||||
{
|
||||
if (Auth::TokenContainer.thread->joinable())
|
||||
{
|
||||
Auth::TokenContainer.thread->join();
|
||||
}
|
||||
|
||||
delete Auth::TokenContainer.thread;
|
||||
Auth::TokenContainer.thread = nullptr;
|
||||
Auth::TokenContainer.thread.join();
|
||||
}
|
||||
|
||||
Auth::StoreKey();
|
||||
|
@ -40,7 +40,7 @@ namespace Components
|
||||
{
|
||||
bool cancel;
|
||||
bool generating;
|
||||
std::thread* thread;
|
||||
std::thread thread;
|
||||
uint32_t targetLevel;
|
||||
int startTime;
|
||||
std::string command;
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
namespace Components
|
||||
{
|
||||
Discovery::Container Discovery::DiscoveryContainer = { false, false, nullptr };
|
||||
Discovery::Container Discovery::DiscoveryContainer = { false, false, std::thread() };
|
||||
|
||||
void Discovery::Perform()
|
||||
{
|
||||
@ -16,7 +16,7 @@ namespace Components
|
||||
|
||||
Discovery::DiscoveryContainer.Perform = false;
|
||||
Discovery::DiscoveryContainer.Terminate = false;
|
||||
Discovery::DiscoveryContainer.Thread = new std::thread([] ()
|
||||
Discovery::DiscoveryContainer.Thread = std::thread([] ()
|
||||
{
|
||||
while (!Discovery::DiscoveryContainer.Terminate)
|
||||
{
|
||||
@ -85,11 +85,9 @@ namespace Components
|
||||
Discovery::DiscoveryContainer.Perform = false;
|
||||
Discovery::DiscoveryContainer.Terminate = true;
|
||||
|
||||
if (Discovery::DiscoveryContainer.Thread)
|
||||
if (Discovery::DiscoveryContainer.Thread.joinable())
|
||||
{
|
||||
Discovery::DiscoveryContainer.Thread->join();
|
||||
delete Discovery::DiscoveryContainer.Thread;
|
||||
Discovery::DiscoveryContainer.Thread = nullptr;
|
||||
Discovery::DiscoveryContainer.Thread.join();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ namespace Components
|
||||
{
|
||||
bool Perform;
|
||||
bool Terminate;
|
||||
std::thread* Thread;
|
||||
std::thread Thread;
|
||||
std::string Challenge;
|
||||
};
|
||||
|
||||
|
@ -7,7 +7,7 @@ namespace Components
|
||||
|
||||
#pragma region Pipe
|
||||
|
||||
Pipe::Pipe() : mType(IPCTYPE_NONE), ReconnectAttempt(0), hPipe(INVALID_HANDLE_VALUE), mThread(0), ConnectCallback(0), mThreadAttached(false)
|
||||
Pipe::Pipe() : mType(IPCTYPE_NONE), ReconnectAttempt(0), hPipe(INVALID_HANDLE_VALUE), ConnectCallback(0), mThreadAttached(false)
|
||||
{
|
||||
this->Destroy();
|
||||
}
|
||||
@ -66,7 +66,7 @@ namespace Components
|
||||
if (!Loader::PerformingUnitTests())
|
||||
{
|
||||
this->mThreadAttached = true;
|
||||
this->mThread = new std::thread(Pipe::ReceiveThread, this);
|
||||
this->mThread = std::thread(Pipe::ReceiveThread, this);
|
||||
}
|
||||
|
||||
Logger::Print("Pipe successfully created\n");
|
||||
@ -117,17 +117,13 @@ namespace Components
|
||||
|
||||
this->mThreadAttached = false;
|
||||
|
||||
if (this->mThread)
|
||||
if (this->mThread.joinable())
|
||||
{
|
||||
Logger::Print("Terminating pipe thread...\n");
|
||||
|
||||
this->mThread->join();
|
||||
this->mThread.join();
|
||||
|
||||
Logger::Print("Pipe thread terminated.\n");
|
||||
|
||||
delete this->mThread;
|
||||
|
||||
this->mThread = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ namespace Components
|
||||
std::map<std::string, PacketCallback> PacketCallbacks;
|
||||
|
||||
HANDLE hPipe;
|
||||
std::thread* mThread;
|
||||
std::thread mThread;
|
||||
bool mThreadAttached;
|
||||
|
||||
Type mType;
|
||||
|
@ -4,20 +4,16 @@
|
||||
|
||||
namespace Components
|
||||
{
|
||||
std::thread* News::Thread = nullptr;
|
||||
std::thread News::Thread;
|
||||
|
||||
bool News::UnitTest()
|
||||
{
|
||||
bool result = true;
|
||||
|
||||
if (News::Thread)
|
||||
if (News::Thread.joinable())
|
||||
{
|
||||
Logger::Print("Awaiting thread termination...\n");
|
||||
|
||||
News::Thread->join();
|
||||
delete News::Thread;
|
||||
|
||||
News::Thread = nullptr;
|
||||
News::Thread.join();
|
||||
|
||||
if (!strlen(Localization::Get("MPUI_CHANGELOG_TEXT")) || Localization::Get("MPUI_CHANGELOG_TEXT") == std::string("Loading..."))
|
||||
{
|
||||
@ -48,7 +44,7 @@ namespace Components
|
||||
Localization::Set("MPUI_CHANGELOG_TEXT", "Loading...");
|
||||
Localization::Set("MPUI_MOTD_TEXT", NEWS_MOTD_DEFUALT);
|
||||
|
||||
News::Thread = new std::thread([] ()
|
||||
News::Thread = std::thread([] ()
|
||||
{
|
||||
Localization::Set("MPUI_CHANGELOG_TEXT", Utils::WebIO("IW4x", "https://iw4xcachep26muba.onion.to/iw4/changelog.txt").SetTimeout(5000)->Get().data());
|
||||
|
||||
@ -65,12 +61,9 @@ namespace Components
|
||||
|
||||
News::~News()
|
||||
{
|
||||
if (News::Thread)
|
||||
if (News::Thread.joinable())
|
||||
{
|
||||
News::Thread->join();
|
||||
delete News::Thread;
|
||||
|
||||
News::Thread = nullptr;
|
||||
News::Thread.join();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,6 @@ namespace Components
|
||||
bool UnitTest();
|
||||
|
||||
private:
|
||||
static std::thread* Thread;
|
||||
static std::thread Thread;
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user