| Index: base/thread_restrictions.cc
|
| ===================================================================
|
| --- base/thread_restrictions.cc (revision 70342)
|
| +++ base/thread_restrictions.cc (working copy)
|
| @@ -1,63 +0,0 @@
|
| -// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "base/thread_restrictions.h"
|
| -
|
| -// This entire file is compiled out in Release mode.
|
| -#ifndef NDEBUG
|
| -
|
| -#include "base/lazy_instance.h"
|
| -#include "base/logging.h"
|
| -#include "base/threading/thread_local.h"
|
| -
|
| -namespace base {
|
| -
|
| -namespace {
|
| -
|
| -LazyInstance<ThreadLocalBoolean, LeakyLazyInstanceTraits<ThreadLocalBoolean> >
|
| - g_io_disallowed(LINKER_INITIALIZED);
|
| -
|
| -LazyInstance<ThreadLocalBoolean, LeakyLazyInstanceTraits<ThreadLocalBoolean> >
|
| - g_singleton_disallowed(LINKER_INITIALIZED);
|
| -
|
| -} // anonymous namespace
|
| -
|
| -// static
|
| -bool ThreadRestrictions::SetIOAllowed(bool allowed) {
|
| - bool previous_disallowed = g_io_disallowed.Get().Get();
|
| - g_io_disallowed.Get().Set(!allowed);
|
| - return !previous_disallowed;
|
| -}
|
| -
|
| -// static
|
| -void ThreadRestrictions::AssertIOAllowed() {
|
| - if (g_io_disallowed.Get().Get()) {
|
| - LOG(FATAL) <<
|
| - "Function marked as IO-only was called from a thread that "
|
| - "disallows IO! If this thread really should be allowed to "
|
| - "make IO calls, adjust the call to "
|
| - "base::ThreadRestrictions::SetIOAllowed() in this thread's "
|
| - "startup.";
|
| - }
|
| -}
|
| -
|
| -bool ThreadRestrictions::SetSingletonAllowed(bool allowed) {
|
| - bool previous_disallowed = g_singleton_disallowed.Get().Get();
|
| - g_singleton_disallowed.Get().Set(!allowed);
|
| - return !previous_disallowed;
|
| -}
|
| -
|
| -// static
|
| -void ThreadRestrictions::AssertSingletonAllowed() {
|
| - if (g_singleton_disallowed.Get().Get()) {
|
| - LOG(FATAL) << "LazyInstance/Singleton is not allowed to be used on this "
|
| - << "thread. Most likely it's because this thread is not "
|
| - << "joinable, so AtExitManager may have deleted the object "
|
| - << "on shutdown, leading to a potential shutdown crash.";
|
| - }
|
| -}
|
| -
|
| -} // namespace base
|
| -
|
| -#endif // NDEBUG
|
|
|