summaryrefslogtreecommitdiffhomepage
path: root/NetEx
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-03-27 22:11:07 +0200
committerAki <please@ignore.pl>2022-03-27 22:11:07 +0200
commit1cf689a6ad9d6c5cd29e11a6a96cb075eb2bbbb8 (patch)
tree3b31cdfcefe051a9a31972703b4d738812467abf /NetEx
parent2ba515370864b85bd29b0d23083248c74a868691 (diff)
downloadstarshatter-1cf689a6ad9d6c5cd29e11a6a96cb075eb2bbbb8.zip
starshatter-1cf689a6ad9d6c5cd29e11a6a96cb075eb2bbbb8.tar.gz
starshatter-1cf689a6ad9d6c5cd29e11a6a96cb075eb2bbbb8.tar.bz2
Replaced ThreadSync with stl's mutex
Diffstat (limited to 'NetEx')
-rw-r--r--NetEx/HttpServletExec.cpp4
-rw-r--r--NetEx/NetLink.cpp31
-rw-r--r--NetEx/NetLink.h5
-rw-r--r--NetEx/NetMsg.h1
-rw-r--r--NetEx/NetPeer.cpp2
-rw-r--r--NetEx/NetPeer.h5
-rw-r--r--NetEx/NetServer.cpp12
-rw-r--r--NetEx/NetServer.h5
8 files changed, 34 insertions, 31 deletions
diff --git a/NetEx/HttpServletExec.cpp b/NetEx/HttpServletExec.cpp
index 357a5f8..b8d92f7 100644
--- a/NetEx/HttpServletExec.cpp
+++ b/NetEx/HttpServletExec.cpp
@@ -200,7 +200,7 @@ DWORD
HttpServletExec::CheckSessions()
{
while (!exec_shutdown) {
- sync.acquire();
+ sync.lock();
if (sessions.size()) {
ListIter<HttpSession> iter = sessions;
@@ -216,7 +216,7 @@ HttpServletExec::CheckSessions()
DoSyncedCheck();
- sync.release();
+ sync.unlock();
Sleep(100);
}
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<std::mutex> 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<NetPeer> 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<std::mutex> lock(sync);
ListIter<NetPeer> 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<std::mutex> lock(sync);
if (peer) {
sequence = peer->Sequence();
@@ -415,7 +416,7 @@ void
NetLink::DoRetries()
{
if (!shutdown) {
- AutoThreadSync auto_sync(sync);
+ const std::lock_guard<std::mutex> 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<std::mutex> lock(sync);
NetPeer* peer = 0;
ListIter<NetPeer> 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<std::mutex> lock(sync);
NetPeer* peer = 0;
ListIter<NetPeer> iter = peer_list;
diff --git a/NetEx/NetLink.h b/NetEx/NetLink.h
index c039fe7..33024f3 100644
--- a/NetEx/NetLink.h
+++ b/NetEx/NetLink.h
@@ -15,11 +15,12 @@
#ifndef NetLink_h
#define NetLink_h
+#include <mutex>
+
#include <windows.h>
#include "NetAddr.h"
#include "NetSock.h"
#include "List.h"
-#include "ThreadSync.h"
// +-------------------------------------------------------------------+
@@ -91,7 +92,7 @@ protected:
HANDLE hnet;
bool shutdown;
- ThreadSync sync;
+ std::mutex sync;
DWORD resend_time;
DWORD traffic_time;
diff --git a/NetEx/NetMsg.h b/NetEx/NetMsg.h
index 4918c36..1a8585f 100644
--- a/NetEx/NetMsg.h
+++ b/NetEx/NetMsg.h
@@ -20,7 +20,6 @@
#include "NetGram.h"
#include "NetSock.h"
#include "List.h"
-#include "ThreadSync.h"
// +-------------------------------------------------------------------+
diff --git a/NetEx/NetPeer.cpp b/NetEx/NetPeer.cpp
index a324f94..6adbe71 100644
--- a/NetEx/NetPeer.cpp
+++ b/NetEx/NetPeer.cpp
@@ -143,7 +143,7 @@ NetPeer::ComposeGram()
NetGram* g = 0;
if ((send_list.size() || multi_send_list.size()) && OKtoSend()) {
- AutoThreadSync auto_sync(sync);
+ const std::lock_guard<std::mutex> lock(sync);
int xmit_size = send_size;
int nmsg = send_list.size();
diff --git a/NetEx/NetPeer.h b/NetEx/NetPeer.h
index 95bfb5c..3610f1b 100644
--- a/NetEx/NetPeer.h
+++ b/NetEx/NetPeer.h
@@ -15,10 +15,11 @@
#ifndef NetPeer_h
#define NetPeer_h
+#include <mutex>
+
#include <windows.h>
#include "NetAddr.h"
#include "List.h"
-#include "ThreadSync.h"
// +-------------------------------------------------------------------+
@@ -90,7 +91,7 @@ private:
List<NetMsg> multi_send_list;
List<NetMsg> multi_recv_list;
- ThreadSync sync;
+ std::mutex sync;
};
diff --git a/NetEx/NetServer.cpp b/NetEx/NetServer.cpp
index 7681aa1..665b69b 100644
--- a/NetEx/NetServer.cpp
+++ b/NetEx/NetServer.cpp
@@ -117,7 +117,7 @@ NetServer::Listener()
NetSock* s = sock.accept(&client_addr);
while (s) {
- sync.acquire();
+ sync.lock();
for (int i = 0; i < poolsize; i++) {
if (conn[i] == 0) {
@@ -128,7 +128,7 @@ NetServer::Listener()
}
}
- sync.release();
+ sync.unlock();
// wait for a thread to become not busy
if (s)
@@ -164,9 +164,9 @@ NetServer::Reader(int index)
srand(timeGetTime());
while (!server_shutdown) {
- sync.acquire();
+ sync.lock();
NetSock* s = conn[index];
- sync.release();
+ sync.unlock();
if (s) {
const int MAX_REQUEST = 4096;
@@ -202,10 +202,10 @@ NetServer::Reader(int index)
}
}
- sync.acquire();
+ sync.lock();
delete conn[index];
conn[index] = 0;
- sync.release();
+ sync.unlock();
}
else {
Sleep(5);
diff --git a/NetEx/NetServer.h b/NetEx/NetServer.h
index 94bff95..0869f2a 100644
--- a/NetEx/NetServer.h
+++ b/NetEx/NetServer.h
@@ -15,12 +15,13 @@
#ifndef NetServer_h
#define NetServer_h
+#include <mutex>
+
#include <windows.h>
#include "NetAddr.h"
#include "NetGram.h"
#include "NetSock.h"
#include "List.h"
-#include "ThreadSync.h"
// +-------------------------------------------------------------------+
@@ -58,7 +59,7 @@ protected:
int err;
bool server_shutdown;
- ThreadSync sync;
+ std::mutex sync;
};