3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-27 13:39:49 +00:00

fix mutexes hanging due to access to free'd memory

Thanks to Kevin de Vos for reporting the bug & testing the fix
This commit is contained in:
Nuno Lopes 2019-09-03 20:02:21 +01:00
parent cb75326686
commit 87a96d7bd4
8 changed files with 27 additions and 8 deletions

View file

@ -26,6 +26,9 @@ struct lock_guard {
};
#define DECLARE_MUTEX(name) mutex *name = nullptr
#define DECLARE_INIT_MUTEX(name) mutex *name = nullptr
#define ALLOC_MUTEX(name) (void)
#define DEALLOC_MUTEX(name) (void)
#else
#include <atomic>
@ -35,5 +38,9 @@ template<typename T> using atomic = std::atomic<T>;
typedef std::mutex mutex;
typedef std::lock_guard<std::mutex> lock_guard;
#define DECLARE_MUTEX(name) mutex *name = new mutex
#define DECLARE_MUTEX(name) mutex *name = nullptr
#define DECLARE_INIT_MUTEX(name) mutex *name = new mutex
#define ALLOC_MUTEX(name) name = alloc(mutex)
#define DEALLOC_MUTEX(name) dealloc(name)
#endif