mirror of
https://github.com/BeamMP/BeamMP-Launcher.git
synced 2025-07-01 23:46:59 +00:00
Properly handle the future
This commit is contained in:
parent
9e93fa35fa
commit
d3bddb0203
@ -200,7 +200,17 @@ bool IsAllowedLink(const std::string& Link) {
|
|||||||
return std::regex_search(Link, link_match, link_pattern) && link_match.position() == 0;
|
return std::regex_search(Link, link_match, link_pattern) && link_match.position() == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<std::future<void>> futures;
|
||||||
|
|
||||||
void Parse(std::string Data, SOCKET CSocket) {
|
void Parse(std::string Data, SOCKET CSocket) {
|
||||||
|
std::erase_if(futures, [](const std::future<void>& f) {
|
||||||
|
if (f.wait_for(std::chrono::seconds(0)) == std::future_status::ready) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
char Code = Data.at(0), SubCode = 0;
|
char Code = Data.at(0), SubCode = 0;
|
||||||
if (Data.length() > 1)
|
if (Data.length() > 1)
|
||||||
SubCode = Data.at(1);
|
SubCode = Data.at(1);
|
||||||
@ -213,9 +223,9 @@ void Parse(std::string Data, SOCKET CSocket) {
|
|||||||
Terminate = true;
|
Terminate = true;
|
||||||
TCPTerminate = true;
|
TCPTerminate = true;
|
||||||
Data.clear();
|
Data.clear();
|
||||||
auto future = std::async(std::launch::async, []() {
|
futures.push_back(std::async(std::launch::async, []() {
|
||||||
CoreSend("B" + HTTP::Get("https://backend.beammp.com/servers-info"));
|
CoreSend("B" + HTTP::Get("https://backend.beammp.com/servers-info"));
|
||||||
});
|
}));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'C':
|
case 'C':
|
||||||
@ -312,9 +322,9 @@ void Parse(std::string Data, SOCKET CSocket) {
|
|||||||
}
|
}
|
||||||
Data = "N" + Auth.dump();
|
Data = "N" + Auth.dump();
|
||||||
} else {
|
} else {
|
||||||
auto future = std::async(std::launch::async, [data = std::move(Data)]() {
|
futures.push_back(std::async(std::launch::async, [data = std::move(Data)]() {
|
||||||
CoreSend("N" + Login(data.substr(data.find(':') + 1)));
|
CoreSend("N" + Login(data.substr(data.find(':') + 1)));
|
||||||
});
|
}));
|
||||||
Data.clear();
|
Data.clear();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user