summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2010-04-07 20:51:14 +0000
committerAlan Conway <aconway@apache.org>2010-04-07 20:51:14 +0000
commit2763bd77f14f04757fc70b006d0fba893e2cee9b (patch)
treecff4b410bb0d7558ee1f4a85a39ec97b5ad396de /qpid/cpp/src
parentbab73d0b954fb4cecc775034a22ed2ebc19f683d (diff)
downloadqpid-python-2763bd77f14f04757fc70b006d0fba893e2cee9b.tar.gz
Use read-write lock to imporve Logger concurrency.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@931682 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r--qpid/cpp/src/qpid/log/Logger.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/qpid/cpp/src/qpid/log/Logger.cpp b/qpid/cpp/src/qpid/log/Logger.cpp
index 939e2502cc..65b4568e74 100644
--- a/qpid/cpp/src/qpid/log/Logger.cpp
+++ b/qpid/cpp/src/qpid/log/Logger.cpp
@@ -90,21 +90,21 @@ void Logger::log(const Statement& s, const std::string& msg) {
os << msg << endl;
std::string formatted=os.str();
{
- ScopedLock l(lock);
+ sys::RWlock::ScopedRlock l(outputsLock);
std::for_each(outputs.begin(), outputs.end(),
boost::bind(&Output::log, _1, s, formatted));
}
}
void Logger::output(std::auto_ptr<Output> out) {
- ScopedLock l(lock);
+ sys::RWlock::ScopedWlock l(outputsLock);
outputs.push_back(out.release());
}
void Logger::clear() {
select(Selector()); // locked
format(0); // locked
- ScopedLock l(lock);
+ sys::RWlock::ScopedWlock l(outputsLock);
outputs.clear();
}