From 1cf689a6ad9d6c5cd29e11a6a96cb075eb2bbbb8 Mon Sep 17 00:00:00 2001 From: Aki Date: Sun, 27 Mar 2022 22:11:07 +0200 Subject: Replaced ThreadSync with stl's mutex --- NetEx/NetLink.cpp | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'NetEx/NetLink.cpp') diff --git a/NetEx/NetLink.cpp b/NetEx/NetLink.cpp index bbba59b..10e817a 100644 --- a/NetEx/NetLink.cpp +++ b/NetEx/NetLink.cpp @@ -87,9 +87,8 @@ NetLink::AddPeer(const NetAddr& a) if (!a.IPAddr()) return 0; - AutoThreadSync auto_sync(sync); - NetPeer* peer = FindPeer(a); + const std::lock_guard lock(sync); if (!peer) { peer = new NetPeer(a, base_netid++); @@ -149,9 +148,9 @@ NetLink::GetMessage(DWORD netid) if (p) { msg = p->GetMessage(); - sync.acquire(); + sync.lock(); recv_list.remove(msg); - sync.release(); + sync.unlock(); } } @@ -169,11 +168,11 @@ NetLink::GetMessage() // Double-checked locking: if (recv_list.size()) { - sync.acquire(); + sync.lock(); if (recv_list.size()) { msg = recv_list.removeIndex(0); } - sync.release(); + sync.unlock(); if (msg && msg->NetID()) { NetPeer* p = FindPeer(msg->NetID()); @@ -216,7 +215,7 @@ NetLink::DoSendRecv() SendPackets(); // discard reeeeally old peers: - sync.acquire(); + sync.lock(); ListIter iter = peer_list; while (!shutdown && ++iter) { @@ -226,7 +225,7 @@ NetLink::DoSendRecv() delete iter.removeItem(); } - sync.release(); + sync.unlock(); Sleep(traffic_time); } @@ -265,7 +264,7 @@ NetLink::SendPackets() DoRetries(); } - AutoThreadSync auto_sync(sync); + const std::lock_guard lock(sync); ListIter iter = peer_list; while (!shutdown && ++iter) { @@ -345,7 +344,7 @@ void NetLink::ProcessAck(NetGram* gram) { if (!shutdown && send_list.size()) { - AutoThreadSync auto_sync(sync); + sync.lock(); // remove the ack flag: gram->ClearAck(); @@ -361,7 +360,9 @@ NetLink::ProcessAck(NetGram* gram) if (lag_index >= 10) lag_index = 0; lag_samples[lag_index++] = msec; + sync.unlock(); NetPeer* peer = FindPeer(orig->Address()); + sync.lock(); if (peer) peer->SetLastReceiveTime(NetLayer::GetUTC()); @@ -374,6 +375,7 @@ NetLink::ProcessAck(NetGram* gram) else resend_time = 300; } + sync.unlock(); } } @@ -381,10 +383,9 @@ void NetLink::QueueNetGram(NetGram* gram) { if (!shutdown) { - AutoThreadSync auto_sync(sync); - DWORD sequence = 0; NetPeer* peer = FindPeer(gram->Address()); + const std::lock_guard lock(sync); if (peer) { sequence = peer->Sequence(); @@ -415,7 +416,7 @@ void NetLink::DoRetries() { if (!shutdown) { - AutoThreadSync auto_sync(sync); + const std::lock_guard lock(sync); if (send_list.size()) { int time = (int) NetLayer::GetTime(); @@ -452,7 +453,7 @@ NetLink::DoRetries() NetPeer* NetLink::FindPeer(DWORD netid) { - AutoThreadSync auto_sync(sync); + const std::lock_guard lock(sync); NetPeer* peer = 0; ListIter iter = peer_list; @@ -469,7 +470,7 @@ NetLink::FindPeer(DWORD netid) NetPeer* NetLink::FindPeer(const NetAddr& a) { - AutoThreadSync auto_sync(sync); + const std::lock_guard lock(sync); NetPeer* peer = 0; ListIter iter = peer_list; -- cgit v1.1