Avoid double-close of Web Server socket on shutdown.
This commit is contained in:
+2
-20
@@ -1340,30 +1340,12 @@ namespace pipedal
|
|||||||
StopListening();
|
StopListening();
|
||||||
|
|
||||||
//linger bit to see of connections will shut down normally
|
//linger bit to see of connections will shut down normally
|
||||||
if(WaitForAllEndpointsClosed(timeoutMs/2))
|
if(WaitForAllEndpointsClosed(timeoutMs))
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Lv2Log::warning("WebServer: forcibly closing connections");
|
|
||||||
|
|
||||||
{
|
|
||||||
std::lock_guard<std::recursive_mutex> lock{m_sessionsMutex};
|
|
||||||
for (auto it = m_connections.begin(); it != m_connections.end(); ++it)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
m_endpoint.close(*it, websocketpp::close::status::abnormal_close, "Shutting down");
|
|
||||||
}
|
|
||||||
catch (const std::exception &ignored)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(WaitForAllEndpointsClosed(timeoutMs/2))
|
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Lv2Log::warning("WebServer: failed to close all connections.");
|
Lv2Log::warning("WebServer: failed to close all connections.");
|
||||||
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
virtual void Join()
|
virtual void Join()
|
||||||
|
|||||||
@@ -80,13 +80,6 @@ static bool isJackServiceRunning()
|
|||||||
return std::filesystem::exists(path);
|
return std::filesystem::exists(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void AsanCheck()
|
|
||||||
{
|
|
||||||
char *t = new char[5];
|
|
||||||
t[5] = 'x';
|
|
||||||
delete t;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if ENABLE_BACKTRACE
|
#if ENABLE_BACKTRACE
|
||||||
void segvHandler(int sig) {
|
void segvHandler(int sig) {
|
||||||
|
|||||||
@@ -16,12 +16,10 @@ User=pipedal_d
|
|||||||
Group=pipedal_d
|
Group=pipedal_d
|
||||||
Restart=always
|
Restart=always
|
||||||
TimeoutStartSec=60
|
TimeoutStartSec=60
|
||||||
|
NotifyAccess=all
|
||||||
RestartSec=5
|
RestartSec=5
|
||||||
TimeoutStopSec=15
|
TimeoutStopSec=15
|
||||||
WorkingDirectory=/var/pipedal
|
WorkingDirectory=/var/pipedal
|
||||||
Environment=JACK_PROMISCUOUS_SERVER=audio
|
|
||||||
Environment=JACK_NO_AUDIO_RESERVATION=1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
|
|||||||
Reference in New Issue
Block a user