diff --git a/rpcs3/Emu/Cell/lv2/sys_mutex.cpp b/rpcs3/Emu/Cell/lv2/sys_mutex.cpp index 97e94aeeae..a0db66c096 100644 --- a/rpcs3/Emu/Cell/lv2/sys_mutex.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_mutex.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx.h" #include "Emu/Memory/vm.h" #include "Emu/System.h" #include "Emu/IdManager.h" @@ -80,6 +80,8 @@ error_code sys_mutex_destroy(u32 mutex_id) const auto mutex = idm::withdraw(mutex_id, [](lv2_mutex& mutex) -> CellError { + std::lock_guard lock(mutex.mutex); + if (mutex.owner || mutex.lock_count) { return CELL_EBUSY;