diff options
author | bungeman@chromium.org <bungeman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-21 20:47:39 +0000 |
---|---|---|
committer | bungeman@chromium.org <bungeman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-21 20:47:39 +0000 |
commit | e593f8b12a57a5270b6d5024aa90fee435a38c19 (patch) | |
tree | 93d0e95b1e7510bca8fd99231ea9ba610d3ce06a /skia/ext | |
parent | f9e684382c3f1a2ad74e62477c33ffdebf849567 (diff) | |
download | chromium_src-e593f8b12a57a5270b6d5024aa90fee435a38c19.zip chromium_src-e593f8b12a57a5270b6d5024aa90fee435a38c19.tar.gz chromium_src-e593f8b12a57a5270b6d5024aa90fee435a38c19.tar.bz2 |
Improve Skia configuration.
This is the Chromium side of https://codereview.chromium.org/19808007 .
R=djsollen@google.com
Review URL: https://codereview.chromium.org/19477005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229905 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia/ext')
-rw-r--r-- | skia/ext/SkThread_chrome.cc | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/skia/ext/SkThread_chrome.cc b/skia/ext/SkThread_chrome.cc deleted file mode 100644 index f379beb..0000000 --- a/skia/ext/SkThread_chrome.cc +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright (c) 2012 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 "third_party/skia/include/core/SkThread.h" - -#include <new> - -#include "base/atomicops.h" -#include "base/basictypes.h" -#include "base/logging.h" -#include "base/synchronization/lock.h" - -/** Adds one to the int specified by the address (in a thread-safe manner), and - returns the previous value. - No additional memory barrier is required. - This must act as a compiler barrier. -*/ -int32_t sk_atomic_inc(int32_t* addr) { - // sk_atomic_inc is expected to return the old value, - // Barrier_AtomicIncrement returns the new value. - return base::subtle::NoBarrier_AtomicIncrement(addr, 1) - 1; -} - -/* Subtracts one from the int specified by the address (in a thread-safe - manner), and returns the previous value. - Expected to act as a release (SL/S) memory barrier and a compiler barrier. -*/ -int32_t sk_atomic_dec(int32_t* addr) { - // sk_atomic_dec is expected to return the old value, - // Barrier_AtomicIncrement returns the new value. - return base::subtle::Barrier_AtomicIncrement(addr, -1) + 1; -} -/** If sk_atomic_dec does not act as an aquire (L/SL) barrier, this is expected - to act as an aquire (L/SL) memory barrier and as a compiler barrier. -*/ -void sk_membar_aquire__after_atomic_dec() { } - -/** Adds one to the int specified by the address iff the int specified by the - address is not zero (in a thread-safe manner), and returns the previous - value. - No additional memory barrier is required. - This must act as a compiler barrier. -*/ -int32_t sk_atomic_conditional_inc(int32_t* addr) { - int32_t value = *addr; - - while (true) { - if (value == 0) { - return 0; - } - - int32_t before; - before = base::subtle::Acquire_CompareAndSwap(addr, value, value + 1); - - if (before == value) { - return value; - } else { - value = before; - } - } -} -/** If sk_atomic_conditional_inc does not act as an aquire (L/SL) barrier, this - is expected to act as an aquire (L/SL) memory barrier and as a compiler - barrier. -*/ -void sk_membar_aquire__after_atomic_conditional_inc() { } - -SkMutex::SkMutex() { - COMPILE_ASSERT(sizeof(base::Lock) <= sizeof(fStorage), Lock_is_too_big_for_SkMutex); - base::Lock* lock = reinterpret_cast<base::Lock*>(fStorage); - new(lock) base::Lock(); -} - -SkMutex::~SkMutex() { - base::Lock* lock = reinterpret_cast<base::Lock*>(fStorage); - lock->~Lock(); -} - -void SkMutex::acquire() { - base::Lock* lock = reinterpret_cast<base::Lock*>(fStorage); - lock->Acquire(); -} - -void SkMutex::release() { - base::Lock* lock = reinterpret_cast<base::Lock*>(fStorage); - lock->Release(); -} |