| Index: remoting/base/tracer.cc
|
| diff --git a/remoting/base/tracer.cc b/remoting/base/tracer.cc
|
| index 3245887e311ffc882fa88626db2a568053ec6f8d..3cef3a0f5adfd58b8d624fabe4c05453bd13f927 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;
|
| }
|
|
|