From 23d0216a27287de4a39cb6f9b75370915a005408 Mon Sep 17 00:00:00 2001 From: bartfaik04 Date: Sat, 31 May 2025 13:26:44 +0200 Subject: [PATCH] Usermanager protected with lock_guards --- src/usermanager.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/usermanager.h b/src/usermanager.h index 972d358..f80be14 100644 --- a/src/usermanager.h +++ b/src/usermanager.h @@ -5,6 +5,7 @@ #include #include #include +#include #include "locations.h" std::vector splitLogFile(const std::string& input, char delimiter); @@ -13,6 +14,7 @@ class userManager { private: std::map users; + std::mutex mtx; public: @@ -23,6 +25,7 @@ public: void addUser(std::string &user) { + std::lock_guard lock(mtx); if (users.count(user) == 0) { users[user] = false; @@ -31,16 +34,19 @@ public: void removeUser(std::string &user) { + std::lock_guard lock(mtx); users.erase(user); } bool isContains(std::string &user) { + std::lock_guard lock(mtx); return users.count(user) == 1; } void setUserFlagged(std::string &user) { + std::lock_guard lock(mtx); if (users.count(user) == 1) { users[user] = true; @@ -49,6 +55,7 @@ public: void setUserUnflagged(std::string &user) { + std::lock_guard lock(mtx); if (users.count(user) == 1) { users[user] = false; @@ -57,6 +64,7 @@ public: void unflagAllUsers() { + std::lock_guard lock(mtx); for (std::map::iterator it = users.begin(); it != users.end(); ++it) { it->second = false; @@ -67,6 +75,8 @@ public: { std::vector ret; + std::lock_guard lock(mtx); + for (std::map::iterator it = users.begin(); it != users.end(); ++it) { ret.push_back(it->first); @@ -79,6 +89,8 @@ public: { std::vector ret; + std::lock_guard lock(mtx); + for (std::map::iterator it = users.begin(); it != users.end(); ++it) { if (it->second)