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)