diff options
author | Erik Sohns <eriksohns@fastmail.net> | 2015-12-03 03:40:08 +0100 |
---|---|---|
committer | Erik Sohns <eriksohns@fastmail.net> | 2015-12-03 14:59:35 +0100 |
commit | b1d83eae3232e4d58125a1388d17f98e3844d08d (patch) | |
tree | 3c000f537c045c371f60b43b419d385136965ce1 | |
parent | 7acfc9e6f746a4b57f5e62847218a1552ea6be52 (diff) | |
download | ATCD-b1d83eae3232e4d58125a1388d17f98e3844d08d.tar.gz |
fixed an issue with (exported) template specializations (Win32) (part2)
-rw-r--r-- | ACE/ace/Condition_Recursive_Thread_Mutex.cpp | 12 | ||||
-rw-r--r-- | ACE/ace/Condition_Recursive_Thread_Mutex.h | 7 | ||||
-rw-r--r-- | ACE/ace/Condition_Recursive_Thread_Mutex.inl | 12 |
3 files changed, 17 insertions, 14 deletions
diff --git a/ACE/ace/Condition_Recursive_Thread_Mutex.cpp b/ACE/ace/Condition_Recursive_Thread_Mutex.cpp index 4ffe00d1947..763f08154de 100644 --- a/ACE/ace/Condition_Recursive_Thread_Mutex.cpp +++ b/ACE/ace/Condition_Recursive_Thread_Mutex.cpp @@ -108,18 +108,6 @@ ACE_Condition<ACE_Recursive_Thread_Mutex>::wait (ACE_Recursive_Thread_Mutex &mut return result; } -int -ACE_Condition<ACE_Recursive_Thread_Mutex>::signal (void) -{ - return ACE_OS::cond_signal (&this->cond_); -} - -int -ACE_Condition<ACE_Recursive_Thread_Mutex>::broadcast (void) -{ - return ACE_OS::cond_broadcast (&this->cond_); -} - ACE_END_VERSIONED_NAMESPACE_DECL #endif /* ACE_HAS_THREADS */ diff --git a/ACE/ace/Condition_Recursive_Thread_Mutex.h b/ACE/ace/Condition_Recursive_Thread_Mutex.h index 8061f3b3d63..19de7846c64 100644 --- a/ACE/ace/Condition_Recursive_Thread_Mutex.h +++ b/ACE/ace/Condition_Recursive_Thread_Mutex.h @@ -33,7 +33,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL class ACE_Time_Value; -#if defined (ACE_BUILD_DLL) /** * @brief ACE_Condition template specialization written using * @a ACE_Recursive_Thread_Mutex. This allows threads to block until @@ -109,9 +108,13 @@ private: ACE_Recursive_Thread_Mutex &mutex_; }; +// *NOTE*: prevent implicit instantiations by includees to relieve the linker +#if defined (__GNUG__) +// g++ (5.2.1) does not support attributes on explicit template instantiations +extern template class ACE_Condition<ACE_Recursive_Thread_Mutex>; #else extern template ACE_Export class ACE_Condition<ACE_Recursive_Thread_Mutex>; -#endif +#endif /* __GNUG__ */ typedef ACE_Condition<ACE_Recursive_Thread_Mutex> ACE_Condition_Recursive_Thread_Mutex; diff --git a/ACE/ace/Condition_Recursive_Thread_Mutex.inl b/ACE/ace/Condition_Recursive_Thread_Mutex.inl index 44e4e09c3a7..30895e26f7c 100644 --- a/ACE/ace/Condition_Recursive_Thread_Mutex.inl +++ b/ACE/ace/Condition_Recursive_Thread_Mutex.inl @@ -13,4 +13,16 @@ ACE_Condition<ACE_Recursive_Thread_Mutex>::mutex (void) return this->mutex_; } +ACE_INLINE int +ACE_Condition<ACE_Recursive_Thread_Mutex>::signal (void) +{ + return ACE_OS::cond_signal (&this->cond_); +} + +ACE_INLINE int +ACE_Condition<ACE_Recursive_Thread_Mutex>::broadcast (void) +{ + return ACE_OS::cond_broadcast (&this->cond_); +} + ACE_END_VERSIONED_NAMESPACE_DECL |