new PIClientServer::ClientBase::stopAndWait() method for blocking stop read.

PIClientServer::ClientBase::close() now non-blocking
This commit is contained in:
2024-09-21 19:56:39 +03:00
parent 4acab04895
commit 3641e636d2
6 changed files with 24 additions and 7 deletions

View File

@@ -154,7 +154,7 @@ TEST(ClientServer, DynamicClients) {
auto s = createServer<true, true, 10_KiB>();
const auto spawnClient = [&clients, &clients_mutex]() {
if (clients.size() > 100) return;
// if (clients.size() > 100) return;
auto c = new ClientSendThread();
c->startSend();
clients_mutex.lock();
@@ -180,7 +180,7 @@ TEST(ClientServer, DynamicClients) {
}
piCout << "+++++++";
},
52_Hz);
12_Hz);
deleteThread.start(
[&clients, &clients_mutex]() {
@@ -199,9 +199,9 @@ TEST(ClientServer, DynamicClients) {
}
piCout << "----------";
},
53_Hz);
13_Hz);
(10_s).sleep();
(2_s).sleep();
EXPECT_GE(s->clientsCount(), 10);

View File

@@ -44,7 +44,10 @@ class TestServerClient
using Base = TestClientBase<WriteSize, WithPong>;
public:
~TestServerClient() { close(); }
~TestServerClient() {
close();
stopAndWait();
}
private:
void readed(PIByteArray data) override { Base::readInternal(data); }
@@ -66,7 +69,10 @@ class TestClient
using Base = TestClientBase<WriteSize, WithPong>;
public:
~TestClient() { close(); }
~TestClient() {
close();
stopAndWait();
}
private:
void readed(PIByteArray data) override { Base::readInternal(data); }