aboutsummaryrefslogtreecommitdiff
path: root/mojo/public/cpp/bindings/lib/sync_call_restrictions.cc
diff options
context:
space:
mode:
authorHidehiko Abe <hidehiko@google.com>2018-04-24 02:15:00 +0900
committerHidehiko Abe <hidehiko@google.com>2018-04-24 10:13:47 +0900
commit920588a1acdc4721abb713d8162010e4b85ae53e (patch)
tree5d0b02a305d2ce5e91eb915695a338dabff2ed6b /mojo/public/cpp/bindings/lib/sync_call_restrictions.cc
parentca6c42abc66e142da1036f0061976d671862c457 (diff)
downloadlibmojo-920588a1acdc4721abb713d8162010e4b85ae53e.tar.gz
This CL moves following files. - .gitignore - Android.bp is merged into libchrome's Android.bp. - base/android/* - build/* except build_config.h which is exactly same with libchrome's. - ipc/* - mojo/* - soong/* into libchrome_tools/ - third_party/{catapult,jinja2,markupsafe,ply}/* - ui/gfx/{geometry,range}/mojo/* Then removed following files: - Android.bp - CleanSpec.mk - build/build_config.h And added README.md to notify the migration. Bug: 73606903 Test: Built locally. Ran on DUT. Change-Id: I94aa1b43ff0854f48f30fdf03025bd1c8a346038
Diffstat (limited to 'mojo/public/cpp/bindings/lib/sync_call_restrictions.cc')
-rw-r--r--mojo/public/cpp/bindings/lib/sync_call_restrictions.cc93
1 files changed, 0 insertions, 93 deletions
diff --git a/mojo/public/cpp/bindings/lib/sync_call_restrictions.cc b/mojo/public/cpp/bindings/lib/sync_call_restrictions.cc
deleted file mode 100644
index 585a8f0..0000000
--- a/mojo/public/cpp/bindings/lib/sync_call_restrictions.cc
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright 2016 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 "mojo/public/cpp/bindings/sync_call_restrictions.h"
-
-#if ENABLE_SYNC_CALL_RESTRICTIONS
-
-#include "base/debug/leak_annotations.h"
-#include "base/lazy_instance.h"
-#include "base/logging.h"
-#include "base/threading/thread_local.h"
-#include "mojo/public/c/system/core.h"
-
-namespace mojo {
-
-namespace {
-
-class SyncCallSettings {
- public:
- static SyncCallSettings* current();
-
- bool allowed() const {
- return scoped_allow_count_ > 0 || system_defined_value_;
- }
-
- void IncreaseScopedAllowCount() { scoped_allow_count_++; }
- void DecreaseScopedAllowCount() {
- DCHECK_LT(0u, scoped_allow_count_);
- scoped_allow_count_--;
- }
-
- private:
- SyncCallSettings();
- ~SyncCallSettings();
-
- bool system_defined_value_ = true;
- size_t scoped_allow_count_ = 0;
-};
-
-base::LazyInstance<base::ThreadLocalPointer<SyncCallSettings>>::DestructorAtExit
- g_sync_call_settings = LAZY_INSTANCE_INITIALIZER;
-
-// static
-SyncCallSettings* SyncCallSettings::current() {
- SyncCallSettings* result = g_sync_call_settings.Pointer()->Get();
- if (!result) {
- result = new SyncCallSettings();
- ANNOTATE_LEAKING_OBJECT_PTR(result);
- DCHECK_EQ(result, g_sync_call_settings.Pointer()->Get());
- }
- return result;
-}
-
-SyncCallSettings::SyncCallSettings() {
- MojoResult result = MojoGetProperty(MOJO_PROPERTY_TYPE_SYNC_CALL_ALLOWED,
- &system_defined_value_);
- DCHECK_EQ(MOJO_RESULT_OK, result);
-
- DCHECK(!g_sync_call_settings.Pointer()->Get());
- g_sync_call_settings.Pointer()->Set(this);
-}
-
-SyncCallSettings::~SyncCallSettings() {
- g_sync_call_settings.Pointer()->Set(nullptr);
-}
-
-} // namespace
-
-// static
-void SyncCallRestrictions::AssertSyncCallAllowed() {
- if (!SyncCallSettings::current()->allowed()) {
- LOG(FATAL) << "Mojo sync calls are not allowed in this process because "
- << "they can lead to jank and deadlock. If you must make an "
- << "exception, please see "
- << "SyncCallRestrictions::ScopedAllowSyncCall and consult "
- << "mojo/OWNERS.";
- }
-}
-
-// static
-void SyncCallRestrictions::IncreaseScopedAllowCount() {
- SyncCallSettings::current()->IncreaseScopedAllowCount();
-}
-
-// static
-void SyncCallRestrictions::DecreaseScopedAllowCount() {
- SyncCallSettings::current()->DecreaseScopedAllowCount();
-}
-
-} // namespace mojo
-
-#endif // ENABLE_SYNC_CALL_RESTRICTIONS