diff options
author | deanm@google.com <deanm@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-07 14:12:34 +0000 |
---|---|---|
committer | deanm@google.com <deanm@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-07 14:12:34 +0000 |
commit | 50e431472ec1589884f2de2007a10718cb3d4176 (patch) | |
tree | e7cc64c1160c164121572906e4b6fabcb6fa8ea0 /base | |
parent | dd6ad6dd02501f33768037ced54ff3eaedf9bbb6 (diff) | |
download | chromium_src-50e431472ec1589884f2de2007a10718cb3d4176.zip chromium_src-50e431472ec1589884f2de2007a10718cb3d4176.tar.gz chromium_src-50e431472ec1589884f2de2007a10718cb3d4176.tar.bz2 |
Remove the old atomic operations interface.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@511 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/SConscript | 1 | ||||
-rw-r--r-- | base/atomic.h | 111 | ||||
-rw-r--r-- | base/atomic_unittest.cc | 63 | ||||
-rw-r--r-- | base/build/base.vcproj | 4 | ||||
-rw-r--r-- | base/build/base_unittests.vcproj | 4 |
5 files changed, 0 insertions, 183 deletions
diff --git a/base/SConscript b/base/SConscript index 26493a7..39ccdda 100644 --- a/base/SConscript +++ b/base/SConscript @@ -215,7 +215,6 @@ env_tests.ChromeTestProgram(['debug_message.exe', test_files = [ 'at_exit_unittest.cc', - 'atomic_unittest.cc', 'check_handler_unittest.cc', 'clipboard_unittest.cc', 'command_line_unittest.cc', diff --git a/base/atomic.h b/base/atomic.h deleted file mode 100644 index becbcc3..0000000 --- a/base/atomic.h +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2008, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#ifndef BASE_ATOMIC_H__ -#define BASE_ATOMIC_H__ - -#if defined(WIN32) -#include <windows.h> -#elif defined(__APPLE__) -#include <libkern/OSAtomic.h> -#else -#error Implement atomic support on your platform -#endif - -#include "base/basictypes.h" - -namespace base { - -/////////////////////////////////////////////////////////////////////////// -// -// Forward declarations and descriptions of the functions -// -/////////////////////////////////////////////////////////////////////////// - -// Atomically increments *value and returns the resulting incremented value. -// This function implies no memory barriers. -int32 AtomicIncrement(volatile int32* value); - -// Atomically decrements *value and returns the resulting decremented value. -// This function implies no memory barriers. -int32 AtomicDecrement(volatile int32* value); - -// Atomically sets *target to new_value and returns the old value of *target. -// This function implies no memory barriers. -int32 AtomicSwap(volatile int32* target, int32 new_value); - -/////////////////////////////////////////////////////////////////////////// -// -// Implementations for various platforms -// -/////////////////////////////////////////////////////////////////////////// - -#if defined(WIN32) - -inline int32 AtomicIncrement(volatile int32* value) { - return InterlockedIncrement(reinterpret_cast<volatile LONG*>(value)); -} - -inline int32 AtomicDecrement(volatile int32* value) { - return InterlockedDecrement(reinterpret_cast<volatile LONG*>(value)); -} - -inline int32 AtomicSwap(volatile int32* target, int32 new_value) { - return InterlockedExchange(reinterpret_cast<volatile LONG*>(target), - new_value); -} - -#elif defined(__APPLE__) - -inline int32 AtomicIncrement(volatile int32* value) { - return OSAtomicIncrement32(reinterpret_cast<volatile int32_t*>(value)); -} - -inline int32 AtomicDecrement(volatile int32* value) { - return OSAtomicDecrement32(reinterpret_cast<volatile int32_t*>(value)); -} - -inline int32 AtomicSwap(volatile int32* target, int32 new_value) { - int32 old_value; - do { - old_value = *target; - } while (!OSAtomicCompareAndSwap32(old_value, new_value, - reinterpret_cast<volatile int32_t*>(target))); - return old_value; -} - -#else - -#error Implement atomic support on your platform - -#endif - -} // namespace base - -#endif // BASE_ATOMIC_H__ diff --git a/base/atomic_unittest.cc b/base/atomic_unittest.cc deleted file mode 100644 index 770a520..0000000 --- a/base/atomic_unittest.cc +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2008, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#include "base/atomic.h" - -#include "base/lock.h" -#include "testing/gtest/include/gtest/gtest.h" - -TEST(AtomicTest, Increment) { - int32 value = 38; - int32 new_value = base::AtomicIncrement(&value); - EXPECT_EQ(39, value); - EXPECT_EQ(39, new_value); -} - -TEST(AtomicTest, Decrement) { - int32 value = 49; - int32 new_value = base::AtomicDecrement(&value); - EXPECT_EQ(48, value); - EXPECT_EQ(48, new_value); -} - -TEST(AtomicTest, Swap) { - int32 value = 38; - int32 old_value = base::AtomicSwap(&value, 49); - EXPECT_EQ(49, value); - EXPECT_EQ(38, old_value); - - // Now do another test. - value = 0; - old_value = base::AtomicSwap(&value, 1); - EXPECT_EQ(0, old_value); - old_value = base::AtomicSwap(&value, 1); - EXPECT_EQ(1, old_value); - old_value = base::AtomicSwap(&value, 1); - EXPECT_EQ(1, old_value); -} diff --git a/base/build/base.vcproj b/base/build/base.vcproj index 60c759c..c76886f 100644 --- a/base/build/base.vcproj +++ b/base/build/base.vcproj @@ -130,10 +130,6 @@ > </File> <File - RelativePath="..\atomic.h" - > - </File> - <File RelativePath="..\atomic_ref_count.h" > </File> diff --git a/base/build/base_unittests.vcproj b/base/build/base_unittests.vcproj index 7ffc029..27a4ad8 100644 --- a/base/build/base_unittests.vcproj +++ b/base/build/base_unittests.vcproj @@ -172,10 +172,6 @@ > </File> <File - RelativePath="..\atomic_unittest.cc" - > - </File> - <File RelativePath="..\check_handler_unittest.cc" > </File> |