Fix: uv_close was called from wrong thread

This commit is contained in:
SChernykh
2022-10-07 16:02:08 +02:00
parent 3e655961e9
commit fd6b2360aa
5 changed files with 21 additions and 8 deletions
+9 -6
View File
@@ -139,12 +139,6 @@ P2PServer::P2PServer(p2pool* pool)
P2PServer::~P2PServer()
{
uv_timer_stop(&m_timer);
uv_close(reinterpret_cast<uv_handle_t*>(&m_timer), nullptr);
uv_close(reinterpret_cast<uv_handle_t*>(&m_broadcastAsync), nullptr);
uv_close(reinterpret_cast<uv_handle_t*>(&m_connectToPeersAsync), nullptr);
uv_close(reinterpret_cast<uv_handle_t*>(&m_showPeersAsync), nullptr);
shutdown_tcp();
uv_mutex_destroy(&m_rngLock);
@@ -1129,6 +1123,15 @@ P2PServer::P2PClient::P2PClient()
{
}
void P2PServer::on_shutdown()
{
uv_timer_stop(&m_timer);
uv_close(reinterpret_cast<uv_handle_t*>(&m_timer), nullptr);
uv_close(reinterpret_cast<uv_handle_t*>(&m_broadcastAsync), nullptr);
uv_close(reinterpret_cast<uv_handle_t*>(&m_connectToPeersAsync), nullptr);
uv_close(reinterpret_cast<uv_handle_t*>(&m_showPeersAsync), nullptr);
}
P2PServer::P2PClient::~P2PClient()
{
}