diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2010-03-08 08:34:45 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2010-03-08 08:34:45 +0000 |
commit | fec2783e8f84ba582e5de3d82110d7f6b4845ebf (patch) | |
tree | 715ab2d5c31d076fc25653caa63532194068e9f4 /ACE/ace/Atomic_Op.inl | |
parent | 2ef3cac339025abb54cda51e6d04f0d95ae01ce7 (diff) | |
download | ATCD-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.inl | 78 |
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 |