summaryrefslogtreecommitdiffstats
path: root/remoting/base
diff options
context:
space:
mode:
authorsatish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-11 09:13:54 +0000
committersatish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-11 09:13:54 +0000
commit49ab556cfe14de363a74ce771931832304a1a038 (patch)
tree7703457c54a035f2eebe38babecaba12b6bfb975 /remoting/base
parent0310169705d607a78bc288e74038fe104b4474fd (diff)
downloadchromium_src-49ab556cfe14de363a74ce771931832304a1a038.zip
chromium_src-49ab556cfe14de363a74ce771931832304a1a038.tar.gz
chromium_src-49ab556cfe14de363a74ce771931832304a1a038.tar.bz2
Make members of Singleton<T> private and only visible to the singleton type. This enforces that the Singleton<T> pattern can only be used within classes which want singleton-ness.
As part of this CL I have also fixed up files which got missed in my previous CLs to use a GetInstance() method and use Singleton<T> from the source file. There are a small number of places where I have also switched to LazyInstance as that was more appropriate for types used in a single source file. BUG=65298 TEST=all existing tests should continue to pass. Review URL: http://codereview.chromium.org/5682008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68932 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/base')
-rw-r--r--remoting/base/tracer.cc14
1 files changed, 10 insertions, 4 deletions
diff --git a/remoting/base/tracer.cc b/remoting/base/tracer.cc
index 3245887..3cef3a0 100644
--- a/remoting/base/tracer.cc
+++ b/remoting/base/tracer.cc
@@ -8,6 +8,7 @@
#include "base/basictypes.h"
#include "base/condition_variable.h"
+#include "base/lazy_instance.h"
#include "base/message_loop.h"
#include "base/rand_util.h"
#include "base/ref_counted.h"
@@ -88,7 +89,7 @@ class OutputLogger {
}
private:
- friend struct DefaultSingletonTraits<OutputLogger>;
+ friend struct base::DefaultLazyInstanceTraits<OutputLogger>;
~OutputLogger() {
{
@@ -108,6 +109,11 @@ class OutputLogger {
std::list<TraceBuffer*> buffers_;
};
+static base::LazyInstance<OutputLogger> g_output_logger(
+ base::LINKER_INITIALIZED);
+static base::LazyInstance<base::ThreadLocalPointer<TraceContext> >
+ g_thread_local_trace_context(base::LINKER_INITIALIZED);
+
} // namespace
Tracer::Tracer(const std::string& name, double sample_percent) {
@@ -136,7 +142,7 @@ Tracer::~Tracer() {
AutoLock l(lock_);
if (buffer_.get()) {
- Singleton<OutputLogger>::get()->OutputTrace(buffer_.release());
+ g_output_logger.Get().OutputTrace(buffer_.release());
}
}
@@ -158,11 +164,11 @@ void TraceContext::PopTracer() {
// static
TraceContext* TraceContext::Get() {
TraceContext* context =
- Singleton<base::ThreadLocalPointer<TraceContext> >::get()->Get();
+ g_thread_local_trace_context.Get().Get();
if (context == NULL) {
context = new TraceContext();
context->PushTracerInternal(new Tracer("default", 0.0));
- Singleton<base::ThreadLocalPointer<TraceContext> >::get()->Set(context);
+ g_thread_local_trace_context.Get().Set(context);
}
return context;
}