summaryrefslogtreecommitdiff
path: root/src/buildtool/serve_api/serve_service/source_tree.hpp
diff options
context:
space:
mode:
authorKlaus Aehlig <klaus.aehlig@huawei.com>2024-11-20 14:24:50 +0100
committerKlaus Aehlig <klaus.aehlig@huawei.com>2024-11-20 14:30:46 +0100
commitdfb7ad5c7d5dcca13d9728534434079a2b60bdea (patch)
tree1877539cfcc8d529d611f4e9934344b97fe0cdb9 /src/buildtool/serve_api/serve_service/source_tree.hpp
parent9c3d4539b820b34ca112dedbaf2ed5262c003ace (diff)
downloadjustbuild-dfb7ad5c7d5dcca13d9728534434079a2b60bdea.tar.gz
Serve service: properly lock git operations against each other
... by using an exclusive lock. A lock of which only ever shared instances are requested has no synchronisation effect. Fix this.
Diffstat (limited to 'src/buildtool/serve_api/serve_service/source_tree.hpp')
-rw-r--r--src/buildtool/serve_api/serve_service/source_tree.hpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/buildtool/serve_api/serve_service/source_tree.hpp b/src/buildtool/serve_api/serve_service/source_tree.hpp
index 670d190f..7b3d3cac 100644
--- a/src/buildtool/serve_api/serve_service/source_tree.hpp
+++ b/src/buildtool/serve_api/serve_service/source_tree.hpp
@@ -17,8 +17,8 @@
#include <filesystem>
#include <memory>
+#include <mutex>
#include <optional>
-#include <shared_mutex>
#include <string>
#include <type_traits>
#include <unordered_map>
@@ -137,7 +137,7 @@ class SourceTreeService final
ApiBundle const& apis_;
gsl::not_null<LocalContext const*> native_context_;
LocalContext const* compat_context_;
- mutable std::shared_mutex mutex_;
+ mutable std::mutex mutex_;
std::shared_ptr<Logger> logger_{std::make_shared<Logger>("serve-service")};
// symlinks resolver map
ResolveSymlinksMap resolve_symlinks_map_{CreateResolveSymlinksMap()};