diff --git a/repertory/librepertory/src/file_manager/file_manager.cpp b/repertory/librepertory/src/file_manager/file_manager.cpp index cd65c261..33a05b7c 100644 --- a/repertory/librepertory/src/file_manager/file_manager.cpp +++ b/repertory/librepertory/src/file_manager/file_manager.cpp @@ -126,11 +126,12 @@ file_manager::~file_manager() { } void file_manager::close(std::uint64_t handle) { - recur_mutex_lock file_lock(open_file_mtx_); + unique_recur_mutex_lock file_lock(open_file_mtx_); auto closeable_file = get_open_file_by_handle(handle); if (not closeable_file) { return; } + file_lock.unlock(); closeable_file->remove(handle); }