diff options
author | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-08-04 02:36:18 +0000 |
---|---|---|
committer | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-08-04 02:36:18 +0000 |
commit | cd64cd7b712841bfb1b78d7eac9d88b1f7550bf8 (patch) | |
tree | 20d721f7cc9bbf73b692b0e505053cb35f9b2719 /ace/Synch_T.h | |
parent | d0636d94675099afece3cdf40cf352918cc844d2 (diff) | |
download | ATCD-cd64cd7b712841bfb1b78d7eac9d88b1f7550bf8.tar.gz |
*** empty log message ***
Diffstat (limited to 'ace/Synch_T.h')
-rw-r--r-- | ace/Synch_T.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/ace/Synch_T.h b/ace/Synch_T.h index d3adfe7624f..f99f1954b43 100644 --- a/ace/Synch_T.h +++ b/ace/Synch_T.h @@ -747,10 +747,33 @@ public: #if defined (__ACE_INLINE__) #include "ace/Synch_T.i" +// On non-Win32 platforms, this code will be inlined +#if !defined (ACE_WIN32) +#include "ace/Atomic_Op.i" +#endif /* !ACE_WIN32 */ #endif /* __ACE_INLINE__ */ #if defined (ACE_TEMPLATES_REQUIRE_SOURCE) #include "ace/Synch_T.cpp" +// On Win32 platforms, this code will be included as template source +// code and will not be inlined. Therefore, we first turn off +// ACE_INLINE, set it to be nothing, include the code, and then turn +// ACE_INLINE back to its original setting. All this nonsense is +// necessary, since the generic template code that needs to be +// specialized cannot be inlined, else the compiler will ignore the +// specialization code. Also, the specialization code *must* be +// inlined or the compiler will ignore the specializations. +#if defined (ACE_WIN32) +#undef ACE_INLINE +#define ACE_INLINE +#include "ace/Atomic_Op.i" +#undef ACE_INLINE +#if defined (__ACE_INLINE__) +#define ACE_INLINE inline +#else +#define ACE_INLINE +#endif /* __ACE_INLINE__ */ +#endif /* ACE_WIN32 */ #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) |