diff options
| author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2020-07-29 17:03:21 +0000 |
|---|---|---|
| committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2020-07-30 22:52:13 +0000 |
| commit | 92e6b7df2c816dc4b0a075b0d2fafbc5dc018bbb (patch) | |
| tree | 16ca2f07063c8f646b9b02d0296e9ef7eae54176 /external/easylogging++ | |
| parent | 6dd95d5308548d62f9340d1f8bfc9ffa21e2eec8 (diff) | |
| download | monzero-core-92e6b7df2c816dc4b0a075b0d2fafbc5dc018bbb.tar.gz monzero-core-92e6b7df2c816dc4b0a075b0d2fafbc5dc018bbb.tar.xz monzero-core-92e6b7df2c816dc4b0a075b0d2fafbc5dc018bbb.zip | |
easylogging++: fix crash with reentrant logging
Diffstat (limited to 'external/easylogging++')
| -rw-r--r-- | external/easylogging++/easylogging++.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/external/easylogging++/easylogging++.cc b/external/easylogging++/easylogging++.cc index 0d748c225..bf877c018 100644 --- a/external/easylogging++/easylogging++.cc +++ b/external/easylogging++/easylogging++.cc @@ -2968,6 +2968,16 @@ void Writer::initializeLogger(Logger *logger, bool needLock) { } void Writer::processDispatch() { + static std::atomic_flag in_dispatch; + if (in_dispatch.test_and_set()) + { + if (m_proceed && m_logger != NULL) + { + m_logger->stream().str(ELPP_LITERAL("")); + m_logger->releaseLock(); + } + return; + } #if ELPP_LOGGING_ENABLED if (ELPP->hasFlag(LoggingFlag::MultiLoggerSupport)) { bool firstDispatched = false; @@ -3006,6 +3016,7 @@ void Writer::processDispatch() { m_logger->releaseLock(); } #endif // ELPP_LOGGING_ENABLED + in_dispatch.clear(); } void Writer::triggerDispatch(void) { |
