diff options
Diffstat (limited to 'src/buildtool/file_system/git_cas.cpp')
-rw-r--r-- | src/buildtool/file_system/git_cas.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/buildtool/file_system/git_cas.cpp b/src/buildtool/file_system/git_cas.cpp index e77d8d6e..67091d2f 100644 --- a/src/buildtool/file_system/git_cas.cpp +++ b/src/buildtool/file_system/git_cas.cpp @@ -1,5 +1,6 @@ #include "src/buildtool/file_system/git_cas.hpp" +#include <mutex> #include <sstream> #include "src/buildtool/file_system/file_system_manager.hpp" @@ -154,9 +155,10 @@ auto GitCAS::ReadHeader(std::string const& id, bool is_hex_id) const noexcept } auto GitCAS::OpenODB(std::filesystem::path const& repo_path) noexcept -> bool { + static std::mutex repo_mutex{}; if (initialized_) { { // lock as git_repository API has no thread-safety guarantees - std::unique_lock lock{repo_mutex_}; + std::unique_lock lock{repo_mutex}; git_repository* repo = nullptr; if (git_repository_open(&repo, repo_path.c_str()) != 0) { Logger::Log(LogLevel::Error, |