summaryrefslogtreecommitdiff
path: root/ace
diff options
context:
space:
mode:
Diffstat (limited to 'ace')
-rw-r--r--ace/Atomic_Op.h4
-rw-r--r--ace/Atomic_Op.inl4
-rw-r--r--ace/Event_Handler.cpp14
-rw-r--r--ace/Malloc_Instantiations.cpp5
4 files changed, 22 insertions, 5 deletions
diff --git a/ace/Atomic_Op.h b/ace/Atomic_Op.h
index 7454946a64f..3cd7dad0d86 100644
--- a/ace/Atomic_Op.h
+++ b/ace/Atomic_Op.h
@@ -64,7 +64,7 @@ public:
ACE_Atomic_Op (void);
/// Initialize <value_> to c.
- ACE_Atomic_Op (long c);
+ ACE_Atomic_Op (const long &c);
/// Manage copying...
ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, long> &c);
@@ -163,7 +163,7 @@ public:
ACE_Atomic_Op (void);
/// Initialize <value_> to c.
- ACE_Atomic_Op (unsigned long c);
+ ACE_Atomic_Op (const unsigned long &c);
/// Manage copying...
ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &c);
diff --git a/ace/Atomic_Op.inl b/ace/Atomic_Op.inl
index 81bf9d8a9f3..007f653bbfa 100644
--- a/ace/Atomic_Op.inl
+++ b/ace/Atomic_Op.inl
@@ -14,7 +14,7 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (void)
}
ACE_INLINE
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (long c)
+ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (const long &c)
: value_ (c)
{
}
@@ -159,7 +159,7 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (void)
}
ACE_INLINE
-ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (unsigned long c)
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (const unsigned long &c)
: value_ (c)
{
}
diff --git a/ace/Event_Handler.cpp b/ace/Event_Handler.cpp
index 10a2a472ed7..de0a347bdc1 100644
--- a/ace/Event_Handler.cpp
+++ b/ace/Event_Handler.cpp
@@ -6,6 +6,8 @@
#include "ace/OS_Errno.h"
#include "ace/Reactor.h"
#include "ace/Thread_Manager.h"
+/* Need to see if ACE_HAS_BUILTIN_ATOMIC_OP defined */
+#include "ace/Atomic_Op.h"
#if !defined (__ACE_INLINE__)
#include "ace/Event_Handler.inl"
@@ -407,4 +409,16 @@ ACE_Notification_Buffer::ACE_Notification_Buffer (ACE_Event_Handler *eh,
ACE_TRACE ("ACE_Notification_Buffer::ACE_Notification_Buffer");
}
+// ACE_HAS_BUILTIN_ATOMIC_OP triggers specialization of these, so the
+// instantiations aren't needed here.
+#if !defined (ACE_HAS_BUILTIN_ATOMIC_OP)
+# if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+template class ACE_Atomic_Op<ACE_SYNCH_MUTEX, long>;
+template class ACE_Atomic_Op_Ex<ACE_SYNCH_MUTEX, long>;
+# elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+# pragma instantiate ACE_Atomic_Op<ACE_SYNCH_MUTEX, long>
+# pragma instantiate ACE_Atomic_Op_Ex<ACE_SYNCH_MUTEX, long>
+# endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
+#endif /* ACE_HAS_BUILTIN_ATOMIC_OP */
+
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ace/Malloc_Instantiations.cpp b/ace/Malloc_Instantiations.cpp
index 87ad264e60f..5eea274f6bb 100644
--- a/ace/Malloc_Instantiations.cpp
+++ b/ace/Malloc_Instantiations.cpp
@@ -1,7 +1,10 @@
// $Id$
-#include "ace/Malloc.h"
+#include "ace/Local_Memory_Pool.h"
+#include "ace/Malloc_T.h"
#include "ace/Null_Mutex.h"
+#include "ace/Synch_Traits.h"
+#include "ace/Thread_Mutex.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL