From 5161f16f4a60ef976acf4cf29dda89d9fe36e240 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Mon, 16 Jan 2017 19:31:43 +0000 Subject: [PATCH] easylogging++: enforce recursive mutex This fixes a hang when logging something which causes some other logging code to be called --- external/easylogging++/easylogging++.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/external/easylogging++/easylogging++.h b/external/easylogging++/easylogging++.h index 68864845..8042392a 100644 --- a/external/easylogging++/easylogging++.h +++ b/external/easylogging++/easylogging++.h @@ -1001,7 +1001,11 @@ namespace el { public: Mutex(void) { # if ELPP_OS_UNIX - pthread_mutex_init(&m_underlyingMutex, nullptr); + pthread_mutexattr_t attr; + pthread_mutexattr_init(&attr); + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); + pthread_mutex_init(&m_underlyingMutex, &attr); + pthread_mutexattr_destroy(&attr); # elif ELPP_OS_WINDOWS InitializeCriticalSection(&m_underlyingMutex); # endif // ELPP_OS_UNIX