From dfb7ad5c7d5dcca13d9728534434079a2b60bdea Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Wed, 20 Nov 2024 14:24:50 +0100 Subject: 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. --- src/buildtool/serve_api/serve_service/source_tree.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/buildtool/serve_api/serve_service/source_tree.hpp') 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 #include +#include #include -#include #include #include #include @@ -137,7 +137,7 @@ class SourceTreeService final ApiBundle const& apis_; gsl::not_null native_context_; LocalContext const* compat_context_; - mutable std::shared_mutex mutex_; + mutable std::mutex mutex_; std::shared_ptr logger_{std::make_shared("serve-service")}; // symlinks resolver map ResolveSymlinksMap resolve_symlinks_map_{CreateResolveSymlinksMap()}; -- cgit v1.2.3