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:
parent
cb75326686
commit
87a96d7bd4
8 changed files with 27 additions and 8 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue