Dr Stephen L S Webb created LOGCXX-546:
------------------------------------------
Summary: Multi threaded applications run at single threaded speed
Key: LOGCXX-546
URL: https://issues.apache.org/jira/browse/LOGCXX-546
Project: Log4cxx
Issue Type: Bug
Affects Versions: 0.12.0
Reporter: Dr Stephen L S Webb
Accessing repository using rep = repository.lock() in Logger::isDisabled()
causes all threads to be serialized when they test if their logger is enabled.
I suggest Hierarchy hold std::weak_ptr for the Loggers instead of
std::shared_ptr in LoggerMap.
Logger can hold a raw pointer to the LoggerRepository. The LoggerRepository
destructor should then do
{code:java}
for (auto& item : this->loggers)
{
if (auto pLogger = item.second.lock())
pLogger->resetRepository();
}{code}
Logger can then test for a NULL repositiory instead of lock() on the weak
pointer
--
This message was sent by Atlassian Jira
(v8.20.1#820001)