diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2025-06-22 17:31:09 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2025-06-22 17:31:09 +0800 |
| commit | 0028a4673d092e0dc8c57cce75cb158ad09826de (patch) | |
| tree | d18e7e2c38fa453d4ae381ae902a452e5ce32e23 /include/libsock/server | |
| parent | 9916e484e30912b83881744e758400b1de854c66 (diff) | |
API(server/clients:create): optional wait argument making ClientManager wait for client thread to finish
Diffstat (limited to 'include/libsock/server')
| -rw-r--r-- | include/libsock/server/clients.hpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/libsock/server/clients.hpp b/include/libsock/server/clients.hpp index cb11e74..dbe7099 100644 --- a/include/libsock/server/clients.hpp +++ b/include/libsock/server/clients.hpp @@ -21,7 +21,7 @@ struct SData { class Clients : public std::enable_shared_from_this<Clients> { public: - static SP<Clients> create(WP<Server> server); + static SP<Clients> create(WP<Server> server, bool wait = false); ~Clients(); SP<Client> newClient(std::function<void(SP<Client> &)> cb = [](SP<Client>) {}); @@ -38,11 +38,13 @@ class Clients : public std::enable_shared_from_this<Clients> { std::vector<SData> getDatas() const; private: - Clients(); + Clients(bool wait = false); + void broadcast(const SData &msg); std::vector<std::pair<std::jthread, SP<Client>>> m_vClients; std::vector<SData> m_vDatas; + bool m_wait; WP<Clients> get(); |
