summaryrefslogtreecommitdiff
path: root/ACE/ace/Atomic_Op.inl
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2010-03-08 08:34:45 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2010-03-08 08:34:45 +0000
commitfec2783e8f84ba582e5de3d82110d7f6b4845ebf (patch)
tree715ab2d5c31d076fc25653caa63532194068e9f4 /ACE/ace/Atomic_Op.inl
parent2ef3cac339025abb54cda51e6d04f0d95ae01ce7 (diff)
downloadATCD-fec2783e8f84ba582e5de3d82110d7f6b4845ebf.tar.gz
Mon Mar 8 08:35:54 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
* ace/Atomic_Op.h: * ace/Atomic_Op.inl: Added specializations for bool/unsigned short/short, is around 7 times faster than the default atomic op
Diffstat (limited to 'ACE/ace/Atomic_Op.inl')
-rw-r--r--ACE/ace/Atomic_Op.inl78
1 files changed, 78 insertions, 0 deletions
diff --git a/ACE/ace/Atomic_Op.inl b/ACE/ace/Atomic_Op.inl
index 5e00f0106ec..91ebcac9f09 100644
--- a/ACE/ace/Atomic_Op.inl
+++ b/ACE/ace/Atomic_Op.inl
@@ -466,6 +466,84 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator= (unsigned long rhs)
return *this;
}
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, short>::ACE_Atomic_Op (void) :
+ ACE_Atomic_Op_GCC<short>()
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, short>::ACE_Atomic_Op (short c) :
+ ACE_Atomic_Op_GCC<short>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, short>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, short> &c) :
+ ACE_Atomic_Op_GCC<short>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, short>&
+ACE_Atomic_Op<ACE_Thread_Mutex, short>::operator= (short rhs)
+{
+ ACE_Atomic_Op_GCC<short>::operator= (rhs);
+ return *this;
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::ACE_Atomic_Op (void) :
+ ACE_Atomic_Op_GCC<unsigned short> ()
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::ACE_Atomic_Op (unsigned short c) :
+ ACE_Atomic_Op_GCC<unsigned short>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short> &c) :
+ ACE_Atomic_Op_GCC<unsigned short>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>&
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::operator= (unsigned short rhs)
+{
+ ACE_Atomic_Op_GCC<unsigned short>::operator= (rhs);
+ return *this;
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, bool>::ACE_Atomic_Op (void) :
+ ACE_Atomic_Op_GCC<bool> ()
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, bool>::ACE_Atomic_Op (bool c) :
+ ACE_Atomic_Op_GCC<bool>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, bool>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, bool> &c) :
+ ACE_Atomic_Op_GCC<bool>(c)
+{
+}
+
+ACE_INLINE
+ACE_Atomic_Op<ACE_Thread_Mutex, bool>&
+ACE_Atomic_Op<ACE_Thread_Mutex, bool>::operator= (bool rhs)
+{
+ ACE_Atomic_Op_GCC<bool>::operator= (rhs);
+ return *this;
+}
+
#endif /* ACE_HAS_GCC_ATOMIC_BUILTINS==1 */
ACE_END_VERSIONED_NAMESPACE_DECL