mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Merge pull request #12849 from unknownbrackets/debugger
http: Fix thread join on enable/disable
This commit is contained in:
commit
b5a0af635f
1 changed files with 10 additions and 4 deletions
|
@ -37,6 +37,7 @@ enum class ServerStatus {
|
||||||
STARTING,
|
STARTING,
|
||||||
RUNNING,
|
RUNNING,
|
||||||
STOPPING,
|
STOPPING,
|
||||||
|
FINISHED,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *REPORT_HOSTNAME = "report.ppsspp.org";
|
static const char *REPORT_HOSTNAME = "report.ppsspp.org";
|
||||||
|
@ -248,7 +249,7 @@ static void ExecuteWebServer() {
|
||||||
if (!http->Listen(g_Config.iRemoteISOPort)) {
|
if (!http->Listen(g_Config.iRemoteISOPort)) {
|
||||||
if (!http->Listen(0)) {
|
if (!http->Listen(0)) {
|
||||||
ERROR_LOG(FILESYS, "Unable to listen on any port");
|
ERROR_LOG(FILESYS, "Unable to listen on any port");
|
||||||
UpdateStatus(ServerStatus::STOPPED);
|
UpdateStatus(ServerStatus::FINISHED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -271,7 +272,7 @@ static void ExecuteWebServer() {
|
||||||
StopAllDebuggers();
|
StopAllDebuggers();
|
||||||
delete http;
|
delete http;
|
||||||
|
|
||||||
UpdateStatus(ServerStatus::STOPPED);
|
UpdateStatus(ServerStatus::FINISHED);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool StartWebServer(WebServerFlags flags) {
|
bool StartWebServer(WebServerFlags flags) {
|
||||||
|
@ -284,6 +285,9 @@ bool StartWebServer(WebServerFlags flags) {
|
||||||
serverFlags |= (int)flags;
|
serverFlags |= (int)flags;
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
case ServerStatus::FINISHED:
|
||||||
|
serverThread.join();
|
||||||
|
// Intentional fallthrough.
|
||||||
case ServerStatus::STOPPED:
|
case ServerStatus::STOPPED:
|
||||||
serverStatus = ServerStatus::STARTING;
|
serverStatus = ServerStatus::STARTING;
|
||||||
serverFlags = (int)flags;
|
serverFlags = (int)flags;
|
||||||
|
@ -318,11 +322,13 @@ bool WebServerStopped(WebServerFlags flags) {
|
||||||
if (serverStatus == ServerStatus::RUNNING) {
|
if (serverStatus == ServerStatus::RUNNING) {
|
||||||
return (serverFlags & (int)flags) == 0;
|
return (serverFlags & (int)flags) == 0;
|
||||||
}
|
}
|
||||||
return serverStatus == ServerStatus::STOPPED;
|
return serverStatus == ServerStatus::STOPPED || serverStatus == ServerStatus::FINISHED;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShutdownWebServer() {
|
void ShutdownWebServer() {
|
||||||
StopWebServer(WebServerFlags::ALL);
|
StopWebServer(WebServerFlags::ALL);
|
||||||
if (serverThread.joinable())
|
|
||||||
|
if (serverStatus != ServerStatus::STOPPED)
|
||||||
serverThread.join();
|
serverThread.join();
|
||||||
|
serverStatus = ServerStatus::STOPPED;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue