summaryrefslogtreecommitdiff
path: root/TAO/tao/RTCORBA
diff options
context:
space:
mode:
authorirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-09-18 00:06:07 +0000
committerirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-09-18 00:06:07 +0000
commit51f8cbd1e6bda9fc3ee01cbcb6305fbd0d760f49 (patch)
tree10e8af6827368c6ceb5e733627c5faf5e361b748 /TAO/tao/RTCORBA
parent860ac45fe29e5b8e33304d7d7d83629de17ca427 (diff)
downloadATCD-51f8cbd1e6bda9fc3ee01cbcb6305fbd0d760f49.tar.gz
ChangeLogTag: Mon Sep 17 19:00:00 2001 Irfan Pyarali <irfan@cs.wustl.edu>
Diffstat (limited to 'TAO/tao/RTCORBA')
-rw-r--r--TAO/tao/RTCORBA/Continuous_Priority_Mapping.cpp130
-rw-r--r--TAO/tao/RTCORBA/Continuous_Priority_Mapping.h75
-rw-r--r--TAO/tao/RTCORBA/Continuous_Priority_Mapping.i (renamed from TAO/tao/RTCORBA/Pool_Per_Endpoint.i)0
-rw-r--r--TAO/tao/RTCORBA/Direct_Priority_Mapping.cpp145
-rw-r--r--TAO/tao/RTCORBA/Direct_Priority_Mapping.h16
-rw-r--r--TAO/tao/RTCORBA/Linear_Priority_Mapping.cpp58
-rw-r--r--TAO/tao/RTCORBA/Linear_Priority_Mapping.h4
-rw-r--r--TAO/tao/RTCORBA/Makefile1064
-rw-r--r--TAO/tao/RTCORBA/Makefile.bor3
-rw-r--r--TAO/tao/RTCORBA/Pool_Per_Endpoint.cpp104
-rw-r--r--TAO/tao/RTCORBA/Pool_Per_Endpoint.h79
-rw-r--r--TAO/tao/RTCORBA/RTCORBA.cpp9
-rw-r--r--TAO/tao/RTCORBA/RTCORBA.h7
-rw-r--r--TAO/tao/RTCORBA/RT_Current.h5
-rw-r--r--TAO/tao/RTCORBA/RT_Endpoint_Selector_Factory.cpp15
-rw-r--r--TAO/tao/RTCORBA/RT_Endpoint_Selector_Factory.h4
-rw-r--r--TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp48
-rw-r--r--TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.h34
-rw-r--r--TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.i1
-rw-r--r--TAO/tao/RTCORBA/RT_Mutex.cpp4
-rw-r--r--TAO/tao/RTCORBA/RT_Mutex.h5
-rw-r--r--TAO/tao/RTCORBA/RT_ORB.cpp126
-rw-r--r--TAO/tao/RTCORBA/RT_ORB.h14
-rw-r--r--TAO/tao/RTCORBA/RT_ORBInitializer.cpp60
-rw-r--r--TAO/tao/RTCORBA/RT_ORBInitializer.h15
-rw-r--r--TAO/tao/RTCORBA/RT_ORB_Loader.cpp59
-rw-r--r--TAO/tao/RTCORBA/RT_ORB_Loader.h30
-rw-r--r--TAO/tao/RTCORBA/RT_PolicyFactory.cpp1
-rw-r--r--TAO/tao/RTCORBA/RT_Policy_i.h5
-rw-r--r--TAO/tao/RTCORBA/RT_Protocols_Hooks.cpp94
-rw-r--r--TAO/tao/RTCORBA/RT_Protocols_Hooks.h7
-rw-r--r--TAO/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.cpp134
-rw-r--r--TAO/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.h105
-rw-r--r--TAO/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.i1
-rw-r--r--TAO/tao/RTCORBA/TAO_RTCORBA.dsp30
-rw-r--r--TAO/tao/RTCORBA/TAO_RTCORBA_Static.dsp18
-rw-r--r--TAO/tao/RTCORBA/Thread_Pool.cpp505
-rw-r--r--TAO/tao/RTCORBA/Thread_Pool.h167
38 files changed, 1967 insertions, 1214 deletions
diff --git a/TAO/tao/RTCORBA/Continuous_Priority_Mapping.cpp b/TAO/tao/RTCORBA/Continuous_Priority_Mapping.cpp
new file mode 100644
index 00000000000..fe50a6d7e4d
--- /dev/null
+++ b/TAO/tao/RTCORBA/Continuous_Priority_Mapping.cpp
@@ -0,0 +1,130 @@
+// $Id$
+
+#include "Continuous_Priority_Mapping.h"
+#include "ace/Sched_Params.h"
+
+#if !defined (__ACE_INLINE__)
+# include "Continuous_Priority_Mapping.i"
+#endif /* ! __ACE_INLINE__ */
+
+ACE_RCSID(RTCORBA, Continuous_Priority_Mapping, "$Id: ")
+
+TAO_Continuous_Priority_Mapping::TAO_Continuous_Priority_Mapping (int policy)
+ : policy_ (policy)
+{
+ this->min_ =
+ ACE_Sched_Params::priority_min (this->policy_);
+
+ this->max_ =
+ ACE_Sched_Params::priority_max (this->policy_);
+}
+
+TAO_Continuous_Priority_Mapping::~TAO_Continuous_Priority_Mapping (void)
+{
+}
+
+CORBA::Boolean
+TAO_Continuous_Priority_Mapping::to_native (RTCORBA::Priority corba_priority,
+ RTCORBA::NativePriority &native_priority)
+{
+ if (corba_priority < 0)
+ return 0;
+
+#if defined (ACE_WIN32)
+
+ int current_native_priority = this->min_;
+ int next_native_priority;
+ for (int i = 1; i <= corba_priority; ++i)
+ {
+ next_native_priority =
+ ACE_Sched_Params::next_priority (this->policy_,
+ current_native_priority);
+
+ if (next_native_priority == current_native_priority)
+ return 0;
+
+ current_native_priority = next_native_priority;
+ }
+
+ native_priority = current_native_priority;
+ return 1;
+
+#else
+
+ if (this->min_ < this->max_)
+ {
+ native_priority = corba_priority + this->min_;
+ if (native_priority > this->max_)
+ return 0;
+ }
+ else if (this->min_ > this->max_)
+ {
+ native_priority = this->min_ - corba_priority;
+ if (native_priority < this->max_)
+ return 0;
+ }
+ else
+ {
+ // There is only one native priority.
+ if (corba_priority != 0)
+ return 0;
+
+ native_priority = this->min_;
+ }
+
+ return 1;
+
+#endif /* ACE_WIN32 */
+
+}
+
+CORBA::Boolean
+TAO_Continuous_Priority_Mapping::to_CORBA (RTCORBA::NativePriority native_priority,
+ RTCORBA::Priority &corba_priority)
+{
+
+#if defined (ACE_WIN32)
+
+ int current_native_priority = this->min_;
+ for (corba_priority = 0; ; ++corba_priority)
+ {
+ if (current_native_priority == native_priority)
+ return 1;
+
+ else if (current_native_priority == this->max_)
+ return 0;
+
+ else
+ current_native_priority =
+ ACE_Sched_Params::next_priority (this->policy_,
+ current_native_priority);
+ }
+
+#else
+
+ if (this->min_ < this->max_)
+ {
+ if (native_priority < this->min_
+ || native_priority > this->max_)
+ return 0;
+ corba_priority = native_priority - this->min_;
+ }
+ else if (this->min_ > this->max_)
+ {
+ if (native_priority > this->min_
+ || native_priority < this->max_)
+ return 0;
+ corba_priority = this->min_ - native_priority;
+ }
+ else if (this->min_ == this->max_)
+ {
+ if (native_priority != this->min_)
+ return 0;
+ corba_priority = 0;
+ }
+
+ return 1;
+
+#endif /* ACE_WIN32 */
+
+}
diff --git a/TAO/tao/RTCORBA/Continuous_Priority_Mapping.h b/TAO/tao/RTCORBA/Continuous_Priority_Mapping.h
new file mode 100644
index 00000000000..820df1379fb
--- /dev/null
+++ b/TAO/tao/RTCORBA/Continuous_Priority_Mapping.h
@@ -0,0 +1,75 @@
+//=============================================================================
+/**
+ * @file Continuous_Priority_Mapping.h
+ *
+ * $Id$
+ *
+ * @author Irfan Pyarali
+ */
+// ===================================================================
+
+#ifndef TAO_CONTINUOUS_PRIORITY_MAPPING_H
+#define TAO_CONTINUOUS_PRIORITY_MAPPING_H
+
+#include "ace/pre.h"
+#include "tao/orbconf.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "rtcorba_export.h"
+#include "Priority_Mapping.h"
+
+/**
+ * @class TAO_Continuous_Priority_Mapping
+ *
+ * @brief Maps the first n CORBA priorities to the range of native
+ * priorities, where n is the number of native priorities.
+ *
+ * The lowest native priority is mapped to CORBA priority 0, next
+ * higher native priority is mapped to CORBA priority 1, and so
+ * on. Since in all the operating systems where TAO is supported the
+ * native priority set contains less than 32767 priorities, part of
+ * the CORBA priority range is left unused. Consider NT as an
+ * example. NT native priorities -15 -2 -1 0 1 2 15 are mapped to
+ * CORBA priorities 0 1 2 3 4 5 6, respectively, and the rest of the
+ * CORBA priority range is not used.
+ *
+ * This class was previously called Direct_Priority_Mapping.
+ *
+ * \nosubgrouping
+ *
+ **/
+class TAO_RTCORBA_Export TAO_Continuous_Priority_Mapping
+ : public TAO_Priority_Mapping
+{
+public:
+
+ /// Constructor.
+ TAO_Continuous_Priority_Mapping (int policy = ACE_SCHED_OTHER);
+
+ /// Destructor.
+ ~TAO_Continuous_Priority_Mapping (void);
+
+ /// Convert CORBA priority to native priority.
+ CORBA::Boolean to_native (RTCORBA::Priority corba_priority,
+ RTCORBA::NativePriority &native_priority);
+
+ /// Convert native priority to CORBA priority.
+ CORBA::Boolean to_CORBA (RTCORBA::NativePriority native_priority,
+ RTCORBA::Priority &corba_priority);
+
+private:
+ int policy_;
+ int min_;
+ int max_;
+};
+
+#if defined (__ACE_INLINE__)
+# include "Continuous_Priority_Mapping.i"
+#endif /* __ACE_INLINE__ */
+
+#include "ace/post.h"
+
+#endif /* TAO_CONTINUOUS_PRIORITY_MAPPING_H */
diff --git a/TAO/tao/RTCORBA/Pool_Per_Endpoint.i b/TAO/tao/RTCORBA/Continuous_Priority_Mapping.i
index cfa1da318d3..cfa1da318d3 100644
--- a/TAO/tao/RTCORBA/Pool_Per_Endpoint.i
+++ b/TAO/tao/RTCORBA/Continuous_Priority_Mapping.i
diff --git a/TAO/tao/RTCORBA/Direct_Priority_Mapping.cpp b/TAO/tao/RTCORBA/Direct_Priority_Mapping.cpp
index 4018aecbf04..1e7d75265d1 100644
--- a/TAO/tao/RTCORBA/Direct_Priority_Mapping.cpp
+++ b/TAO/tao/RTCORBA/Direct_Priority_Mapping.cpp
@@ -11,62 +11,8 @@
ACE_RCSID(Strategies, Direct_Priority_Mapping, "$Id$")
-TAO_Direct_Priority_Mapping::TAO_Direct_Priority_Mapping (int policy)
- : policy_ (policy)
+TAO_Direct_Priority_Mapping::TAO_Direct_Priority_Mapping (long)
{
- // We have special behavior for SUNs. This is because the results
- // from ACE_Sched_Params::priority_min() and
- // ACE_Sched_Params::priority_max() are not correct.
-
-#if defined (sun)
-
- ACE_utsname name;
- ACE_OS::uname (&name);
-
- // If we are on Solaris 5.7.
- if (ACE_OS::strcmp (name.release, "5.7") == 0)
- {
- if (policy == ACE_SCHED_OTHER)
- {
- this->min_ = 0;
- this->max_ = 127;
- }
- else
- {
- this->min_ = 0;
- this->max_ = 59;
- }
- }
- // If we are on Solaris 5.8.
- else if (ACE_OS::strcmp (name.release, "5.8") == 0)
- {
- if (policy == ACE_SCHED_OTHER)
- {
- this->min_ = -20;
- this->max_ = 127;
- }
- else
- {
- this->min_ = 0;
- this->max_ = 59;
- }
- }
- // Not sure about the other SUN releases. Therefore, lets stick to
- // the default behavior.
- else
- {
- this->min_ = ACE_Sched_Params::priority_min (this->policy_);
- this->max_ = ACE_Sched_Params::priority_max (this->policy_);
- }
-
-#else /* sun */
-
- // Other platforms should be ok.
- this->min_ = ACE_Sched_Params::priority_min (this->policy_);
- this->max_ = ACE_Sched_Params::priority_max (this->policy_);
-
-#endif /* sun */
-
}
TAO_Direct_Priority_Mapping::~TAO_Direct_Priority_Mapping (void)
@@ -77,99 +23,14 @@ CORBA::Boolean
TAO_Direct_Priority_Mapping::to_native (RTCORBA::Priority corba_priority,
RTCORBA::NativePriority &native_priority)
{
- if (corba_priority < 0)
- return 0;
-
-#if defined (ACE_WIN32)
-
- int current_native_priority = this->min_;
- int next_native_priority;
- for (int i = 1; i <= corba_priority; ++i)
- {
- next_native_priority =
- ACE_Sched_Params::next_priority (this->policy_,
- current_native_priority);
-
- if (next_native_priority == current_native_priority)
- return 0;
-
- current_native_priority = next_native_priority;
- }
-
- native_priority = current_native_priority;
+ native_priority = corba_priority;
return 1;
-
-#else
-
- if (this->min_ < this->max_)
- {
- native_priority = corba_priority + this->min_;
- if (native_priority > this->max_)
- return 0;
- }
- else if (this->min_ > this->max_)
- {
- native_priority = this->min_ - corba_priority;
- if (native_priority < this->max_)
- return 0;
- }
- else
- {
- // There is only one native priority.
- if (corba_priority != 0)
- return 0;
-
- native_priority = this->min_;
- }
-
- return 1;
-#endif /* ACE_WIN32 */
}
CORBA::Boolean
TAO_Direct_Priority_Mapping::to_CORBA (RTCORBA::NativePriority native_priority,
RTCORBA::Priority &corba_priority)
{
-#if defined (ACE_WIN32)
-
- int current_native_priority = this->min_;
- for (corba_priority = 0; ; ++corba_priority)
- {
- if (current_native_priority == native_priority)
- return 1;
-
- else if (current_native_priority == this->max_)
- return 0;
-
- else
- current_native_priority =
- ACE_Sched_Params::next_priority (this->policy_,
- current_native_priority);
- }
-
-#else
- if (this->min_ < this->max_)
- {
- if (native_priority < this->min_
- || native_priority > this->max_)
- return 0;
- corba_priority = native_priority - this->min_;
- }
- else if (this->min_ > this->max_)
- {
- if (native_priority > this->min_
- || native_priority < this->max_)
- return 0;
- corba_priority = this->min_ - native_priority;
- }
- else if (this->min_ == this->max_)
- {
- if (native_priority != this->min_)
- return 0;
- corba_priority = 0;
- }
-
+ corba_priority = native_priority;
return 1;
-
-#endif /* ACE_WIN32 */
}
diff --git a/TAO/tao/RTCORBA/Direct_Priority_Mapping.h b/TAO/tao/RTCORBA/Direct_Priority_Mapping.h
index 91e7d635e02..640f9435927 100644
--- a/TAO/tao/RTCORBA/Direct_Priority_Mapping.h
+++ b/TAO/tao/RTCORBA/Direct_Priority_Mapping.h
@@ -23,7 +23,6 @@
#include "tao/orbconf.h"
-#include "rtcorba_export.h"
#include "Priority_Mapping.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
@@ -32,18 +31,13 @@
class TAO_RTCORBA_Export TAO_Direct_Priority_Mapping : public TAO_Priority_Mapping
{
- //
// = TITLE
// A simple implementation of the Priority_Mapping interface
//
// = DESCRIPTION
- // This implementation uses direct mapping between the range of
- // priorities for a given scheduling class (ACE_SCHED_OTHER,
- // ACE_SCHED_FIFO, ACE_SCHED_RR) and the valid range of CORBA
- // priorities (0...32767)
- //
+ // This implementation uses direct mapping.
public:
- TAO_Direct_Priority_Mapping (int policy = ACE_SCHED_OTHER);
+ TAO_Direct_Priority_Mapping (long);
// Default constructor
virtual ~TAO_Direct_Priority_Mapping (void);
@@ -57,12 +51,6 @@ public:
RTCORBA::Priority &corba_priority);
private:
- int policy_;
- // The scheduling policy
-
- int min_;
- int max_;
- // The range
};
#if defined (__ACE_INLINE__)
diff --git a/TAO/tao/RTCORBA/Linear_Priority_Mapping.cpp b/TAO/tao/RTCORBA/Linear_Priority_Mapping.cpp
index e6fe6ff9eb6..f45c7ae3ea0 100644
--- a/TAO/tao/RTCORBA/Linear_Priority_Mapping.cpp
+++ b/TAO/tao/RTCORBA/Linear_Priority_Mapping.cpp
@@ -12,62 +12,11 @@
ACE_RCSID(Strategies, Linear_Priority_Mapping, "$Id$")
-TAO_Linear_Priority_Mapping::TAO_Linear_Priority_Mapping (int policy)
- : policy_ (policy)
+TAO_Linear_Priority_Mapping::TAO_Linear_Priority_Mapping (long policy)
+ : policy_ (policy)
{
- // We have special behavior for SUNs. This is because the results
- // from ACE_Sched_Params::priority_min() and
- // ACE_Sched_Params::priority_max() are not correct.
-
-#if defined (sun)
-
- ACE_utsname name;
- ACE_OS::uname (&name);
-
- // If we are on Solaris 5.7.
- if (ACE_OS::strcmp (name.release, "5.7") == 0)
- {
- if (policy == ACE_SCHED_OTHER)
- {
- this->min_ = 0;
- this->max_ = 127;
- }
- else
- {
- this->min_ = 0;
- this->max_ = 59;
- }
- }
- // If we are on Solaris 5.8.
- else if (ACE_OS::strcmp (name.release, "5.8") == 0)
- {
- if (policy == ACE_SCHED_OTHER)
- {
- this->min_ = -20;
- this->max_ = 127;
- }
- else
- {
- this->min_ = 0;
- this->max_ = 59;
- }
- }
- // Not sure about the other SUN releases. Therefore, lets stick to
- // the default behavior.
- else
- {
- this->min_ = ACE_Sched_Params::priority_min (this->policy_);
- this->max_ = ACE_Sched_Params::priority_max (this->policy_);
- }
-
-#else /* sun */
-
- // Other platforms should be ok.
this->min_ = ACE_Sched_Params::priority_min (this->policy_);
this->max_ = ACE_Sched_Params::priority_max (this->policy_);
-
-#endif /* sun */
-
}
TAO_Linear_Priority_Mapping::~TAO_Linear_Priority_Mapping (void)
@@ -78,7 +27,8 @@ CORBA::Boolean
TAO_Linear_Priority_Mapping::to_native (RTCORBA::Priority corba_priority,
RTCORBA::NativePriority &native_priority)
{
- if (corba_priority < 0 || corba_priority > RTCORBA::maxPriority)
+ if (corba_priority < RTCORBA::minPriority ||
+ corba_priority > RTCORBA::maxPriority)
return 0;
#if defined (ACE_WIN32)
diff --git a/TAO/tao/RTCORBA/Linear_Priority_Mapping.h b/TAO/tao/RTCORBA/Linear_Priority_Mapping.h
index 9428f7af1fe..059c2534560 100644
--- a/TAO/tao/RTCORBA/Linear_Priority_Mapping.h
+++ b/TAO/tao/RTCORBA/Linear_Priority_Mapping.h
@@ -43,7 +43,7 @@ class TAO_RTCORBA_Export TAO_Linear_Priority_Mapping : public TAO_Priority_Mappi
// priorities (0...32767)
//
public:
- TAO_Linear_Priority_Mapping (int policy = ACE_SCHED_OTHER);
+ TAO_Linear_Priority_Mapping (long policy);
// Default constructor
virtual ~TAO_Linear_Priority_Mapping (void);
@@ -57,7 +57,7 @@ public:
RTCORBA::Priority &corba_priority);
private:
- int policy_;
+ long policy_;
// The scheduling policy
int min_;
diff --git a/TAO/tao/RTCORBA/Makefile b/TAO/tao/RTCORBA/Makefile
index 6da92e6a08e..a7ecb4e2694 100644
--- a/TAO/tao/RTCORBA/Makefile
+++ b/TAO/tao/RTCORBA/Makefile
@@ -25,9 +25,10 @@ ifeq ($(corba_messaging),1)
CPP_SRCS += \
+ Continuous_Priority_Mapping \
Direct_Priority_Mapping \
Linear_Priority_Mapping \
- Pool_Per_Endpoint \
+ RT_Thread_Lane_Resources_Manager \
Priority_Mapping \
Priority_Mapping_Manager \
Private_Transport_Descriptor \
@@ -84,6 +85,157 @@ endif # corba_messaging
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
+.obj/Continuous_Priority_Mapping.o .obj/Continuous_Priority_Mapping.so .shobj/Continuous_Priority_Mapping.o .shobj/Continuous_Priority_Mapping.so: Continuous_Priority_Mapping.cpp \
+ Continuous_Priority_Mapping.h \
+ $(ACE_ROOT)/ace/pre.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/post.h \
+ $(ACE_ROOT)/ace/ACE_export.h \
+ $(ACE_ROOT)/ace/svc_export.h \
+ $(ACE_ROOT)/ace/ace_wchar.h \
+ $(ACE_ROOT)/ace/ace_wchar.inl \
+ $(ACE_ROOT)/ace/OS_Errno.h \
+ $(ACE_ROOT)/ace/OS_Export.h \
+ $(ACE_ROOT)/ace/OS_Errno.inl \
+ $(ACE_ROOT)/ace/OS_Dirent.h \
+ $(ACE_ROOT)/ace/OS_Dirent.inl \
+ $(ACE_ROOT)/ace/OS_String.h \
+ $(ACE_ROOT)/ace/OS_String.inl \
+ $(ACE_ROOT)/ace/OS_Memory.h \
+ $(ACE_ROOT)/ace/OS_Memory.inl \
+ $(ACE_ROOT)/ace/OS_TLI.h \
+ $(ACE_ROOT)/ace/OS_TLI.inl \
+ $(ACE_ROOT)/ace/Min_Max.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ rtcorba_export.h Priority_Mapping.h RTCORBAC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/TAO_Export.h \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Base.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Flag_Manip.h \
+ $(ACE_ROOT)/ace/Flag_Manip.i \
+ $(ACE_ROOT)/ace/Handle_Ops.h \
+ $(ACE_ROOT)/ace/Handle_Ops.i \
+ $(ACE_ROOT)/ace/Lib_Find.h \
+ $(ACE_ROOT)/ace/Lib_Find.i \
+ $(ACE_ROOT)/ace/Init_ACE.h \
+ $(ACE_ROOT)/ace/Init_ACE.i \
+ $(ACE_ROOT)/ace/Sock_Connect.h \
+ $(ACE_ROOT)/ace/Sock_Connect.i \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Malloc_Allocator.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Malloc_Allocator.i \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Node.h \
+ $(ACE_ROOT)/ace/Node.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/CDR_Base.inl \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/varbase.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
+ $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
+ $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
+ $(TAO_ROOT)/tao/TAO_Singleton.h \
+ $(TAO_ROOT)/tao/TAO_Singleton.inl \
+ $(TAO_ROOT)/tao/TAO_Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
+ $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
+ $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/Encodable.h \
+ $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ RTCORBAC.i Priority_Mapping.i Continuous_Priority_Mapping.i \
+ $(ACE_ROOT)/ace/Sched_Params.h \
+ $(ACE_ROOT)/ace/Sched_Params.i
+
.obj/Direct_Priority_Mapping.o .obj/Direct_Priority_Mapping.so .shobj/Direct_Priority_Mapping.o .shobj/Direct_Priority_Mapping.so: Direct_Priority_Mapping.cpp \
$(TAO_ROOT)/tao/orbconf.h \
$(ACE_ROOT)/ace/pre.h \
@@ -110,8 +262,8 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Basic_Types.i \
$(ACE_ROOT)/ace/Trace.h \
$(ACE_ROOT)/ace/OS.i \
- Direct_Priority_Mapping.h rtcorba_export.h Priority_Mapping.h \
- RTCORBAC.h \
+ Direct_Priority_Mapping.h Priority_Mapping.h RTCORBAC.h \
+ rtcorba_export.h \
$(TAO_ROOT)/tao/IOPC.h \
$(TAO_ROOT)/tao/TAO_Export.h \
$(TAO_ROOT)/tao/Any.h \
@@ -387,9 +539,11 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Sched_Params.h \
$(ACE_ROOT)/ace/Sched_Params.i
-.obj/Pool_Per_Endpoint.o .obj/Pool_Per_Endpoint.so .shobj/Pool_Per_Endpoint.o .shobj/Pool_Per_Endpoint.so: Pool_Per_Endpoint.cpp Pool_Per_Endpoint.h \
+.obj/RT_Thread_Lane_Resources_Manager.o .obj/RT_Thread_Lane_Resources_Manager.so .shobj/RT_Thread_Lane_Resources_Manager.o .shobj/RT_Thread_Lane_Resources_Manager.so: RT_Thread_Lane_Resources_Manager.cpp \
+ $(TAO_ROOT)/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.h \
$(ACE_ROOT)/ace/pre.h \
- rtcorba_export.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ACE_export.h \
$(ACE_ROOT)/ace/svc_export.h \
@@ -398,14 +552,6 @@ endif # corba_messaging
$(ACE_ROOT)/ace/OS_Errno.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Dirent.inl \
$(ACE_ROOT)/ace/OS_String.h \
@@ -416,8 +562,16 @@ endif # corba_messaging
$(ACE_ROOT)/ace/OS_TLI.inl \
$(ACE_ROOT)/ace/Min_Max.h \
$(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
$(ACE_ROOT)/ace/Trace.h \
$(ACE_ROOT)/ace/OS.i \
+ $(TAO_ROOT)/tao/RTCORBA/rtcorba_export.h \
+ $(TAO_ROOT)/tao/Thread_Lane_Resources_Manager.h \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Base.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/ACE.h \
$(ACE_ROOT)/ace/Flag_Manip.h \
$(ACE_ROOT)/ace/Flag_Manip.i \
$(ACE_ROOT)/ace/Handle_Ops.h \
@@ -481,14 +635,39 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Message_Block_T.cpp \
$(ACE_ROOT)/ace/CDR_Base.inl \
$(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
$(ACE_ROOT)/ace/CORBA_macros.h \
$(TAO_ROOT)/tao/varbase.h \
$(TAO_ROOT)/tao/TAO_Export.h \
$(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Exception.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(TAO_ROOT)/tao/Thread_Lane_Resources_Manager.i \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.inl \
+ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
$(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Test_and_Set.h \
+ $(ACE_ROOT)/ace/Test_and_Set.i \
+ $(ACE_ROOT)/ace/Test_and_Set.cpp \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Exception.h \
$(TAO_ROOT)/tao/Exception.i \
$(TAO_ROOT)/tao/Services.h \
$(TAO_ROOT)/tao/Sequence.h \
@@ -518,88 +697,6 @@ endif # corba_messaging
$(TAO_ROOT)/tao/CurrentC.i \
$(TAO_ROOT)/tao/PolicyC.i \
$(TAO_ROOT)/tao/ORB.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- Pool_Per_Endpoint.i \
- $(TAO_ROOT)/tao/ORB_Core.h \
$(TAO_ROOT)/tao/Policy_Manager.h \
$(TAO_ROOT)/tao/Policy_Set.h \
$(TAO_ROOT)/tao/Policy_Set.i \
@@ -624,6 +721,11 @@ endif # corba_messaging
$(TAO_ROOT)/tao/TAO_Singleton.h \
$(TAO_ROOT)/tao/TAO_Singleton.inl \
$(TAO_ROOT)/tao/TAO_Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
$(TAO_ROOT)/tao/Adapter.h \
$(TAO_ROOT)/tao/Adapter.i \
$(TAO_ROOT)/tao/PolicyFactory_Registry.h \
@@ -654,18 +756,84 @@ endif # corba_messaging
$(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
$(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
$(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
$(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
$(TAO_ROOT)/tao/Object_Ref_Table.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
$(TAO_ROOT)/tao/Interceptor_List.h \
$(TAO_ROOT)/tao/Interceptor_List.inl \
$(TAO_ROOT)/tao/Protocols_Hooks.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
$(TAO_ROOT)/tao/ORB_Core.i \
$(TAO_ROOT)/tao/Acceptor_Registry.h \
$(TAO_ROOT)/tao/Acceptor_Registry.i \
- Priority_Mapping_Manager.h Priority_Mapping.h RTCORBAC.h RTCORBAC.i \
- Priority_Mapping.i Priority_Mapping_Manager.i \
- $(ACE_ROOT)/ace/Sched_Params.h \
- $(ACE_ROOT)/ace/Sched_Params.i
+ $(TAO_ROOT)/tao/Thread_Lane_Resources.h \
+ $(TAO_ROOT)/tao/Thread_Lane_Resources.i \
+ $(TAO_ROOT)/tao/RTCORBA/Thread_Pool.h \
+ $(TAO_ROOT)/tao/RTCORBA/RTCORBAC.h \
+ $(TAO_ROOT)/tao/RTCORBA/RTCORBAC.i \
+ $(TAO_ROOT)/tao/New_Leader_Generator.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/Process_Mutex.h \
+ $(ACE_ROOT)/ace/Process_Mutex.inl \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Task_T.cpp \
+ $(ACE_ROOT)/ace/Module.h \
+ $(ACE_ROOT)/ace/Module.i \
+ $(ACE_ROOT)/ace/Module.cpp \
+ $(ACE_ROOT)/ace/Stream_Modules.h \
+ $(ACE_ROOT)/ace/Stream_Modules.cpp \
+ $(TAO_ROOT)/tao/RTCORBA/Thread_Pool.i \
+ $(TAO_ROOT)/tao/Leader_Follower.h \
+ $(TAO_ROOT)/tao/LF_Follower.h \
+ $(ACE_ROOT)/ace/Intrusive_List_Node.h \
+ $(ACE_ROOT)/ace/Intrusive_List_Node.inl \
+ $(ACE_ROOT)/ace/Intrusive_List_Node.cpp \
+ $(TAO_ROOT)/tao/LF_Follower.inl \
+ $(ACE_ROOT)/ace/Intrusive_List.h \
+ $(ACE_ROOT)/ace/Intrusive_List.inl \
+ $(ACE_ROOT)/ace/Intrusive_List.cpp \
+ $(TAO_ROOT)/tao/Leader_Follower.i
.obj/Priority_Mapping.o .obj/Priority_Mapping.so .shobj/Priority_Mapping.o .shobj/Priority_Mapping.so: Priority_Mapping.cpp \
$(TAO_ROOT)/tao/orbconf.h \
@@ -1220,12 +1388,10 @@ endif # corba_messaging
$(TAO_ROOT)/tao/CurrentC.i \
$(TAO_ROOT)/tao/PolicyC.i \
RTCORBAC.i RT_ORB_Loader.h \
- $(TAO_ROOT)/tao/Object_Loader.h \
$(ACE_ROOT)/ace/Service_Object.h \
$(ACE_ROOT)/ace/Shared_Object.h \
$(ACE_ROOT)/ace/Shared_Object.i \
$(ACE_ROOT)/ace/Service_Object.i \
- $(TAO_ROOT)/tao/Object_Loader.i \
$(ACE_ROOT)/ace/Service_Config.h \
$(ACE_ROOT)/ace/Unbounded_Queue.h \
$(ACE_ROOT)/ace/Unbounded_Queue.inl \
@@ -1243,13 +1409,7 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Timer_Queue_T.cpp \
$(ACE_ROOT)/ace/Reactor.i \
$(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- RT_Protocols_Hooks.h \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- Priority_Mapping_Manager.h Priority_Mapping.h Priority_Mapping.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- Priority_Mapping_Manager.i RT_Protocols_Hooks.i
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h
.obj/RTCORBAC.o .obj/RTCORBAC.so .shobj/RTCORBAC.o .shobj/RTCORBAC.so: RTCORBAC.cpp RTCORBAC.h \
$(ACE_ROOT)/ace/pre.h \
@@ -1558,8 +1718,12 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Basic_Types.h \
$(ACE_ROOT)/ace/Basic_Types.i \
$(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i RTCORBA.h \
+ $(ACE_ROOT)/ace/OS.i RTCORBAC.h \
rtcorba_export.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/TAO_Export.h \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/CDR.h \
$(TAO_ROOT)/tao/corbafwd.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/Message_Block.h \
@@ -1629,12 +1793,7 @@ endif # corba_messaging
$(TAO_ROOT)/tao/try_macros.h \
$(ACE_ROOT)/ace/CORBA_macros.h \
$(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
$(TAO_ROOT)/tao/corbafwd.i \
- RTCORBAC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
$(TAO_ROOT)/tao/CDR.i \
@@ -2620,7 +2779,7 @@ endif # corba_messaging
$(TAO_ROOT)/tao/target_specification.i \
$(TAO_ROOT)/tao/operation_details.i \
$(TAO_ROOT)/tao/Invocation.i \
- RT_Policy_i.h RTCORBA.h RTCORBAC.h RTCORBAC.i RT_Policy_i.i \
+ RT_Policy_i.h RTCORBAC.h RTCORBAC.i RT_Policy_i.i \
$(TAO_ROOT)/tao/Endpoint.h \
$(TAO_ROOT)/tao/Endpoint.i \
RT_Stub.h Private_Transport_Descriptor.h \
@@ -2658,8 +2817,12 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Basic_Types.h \
$(ACE_ROOT)/ace/Basic_Types.i \
$(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i RTCORBA.h \
+ $(ACE_ROOT)/ace/OS.i RTCORBAC.h \
rtcorba_export.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/TAO_Export.h \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/CDR.h \
$(TAO_ROOT)/tao/corbafwd.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/Message_Block.h \
@@ -2729,12 +2892,7 @@ endif # corba_messaging
$(TAO_ROOT)/tao/try_macros.h \
$(ACE_ROOT)/ace/CORBA_macros.h \
$(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
$(TAO_ROOT)/tao/corbafwd.i \
- RTCORBAC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
$(TAO_ROOT)/tao/CDR.i \
@@ -2783,38 +2941,23 @@ endif # corba_messaging
RTCORBAC.i \
$(TAO_ROOT)/tao/LocalObject.h \
$(TAO_ROOT)/tao/LocalObject.i \
- RT_ORB.h Thread_Pool.h \
- $(ACE_ROOT)/ace/Task.h \
+ RT_ORB.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
$(ACE_ROOT)/ace/Service_Object.h \
$(ACE_ROOT)/ace/Shared_Object.h \
$(ACE_ROOT)/ace/Shared_Object.i \
$(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
$(ACE_ROOT)/ace/Unbounded_Queue.h \
$(ACE_ROOT)/ace/Unbounded_Queue.inl \
$(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
$(ACE_ROOT)/ace/Service_Config.i \
$(ACE_ROOT)/ace/Reactor.h \
$(ACE_ROOT)/ace/Handle_Set.h \
@@ -2829,43 +2972,7 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Reactor.i \
$(ACE_ROOT)/ace/Reactor_Impl.h \
$(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/ORB.i \
- Thread_Pool.i RT_ORB.i
+ RT_ORB.i
.obj/RT_ORB.o .obj/RT_ORB.so .shobj/RT_ORB.o .shobj/RT_ORB.so: RT_ORB.cpp RT_ORB.h \
$(ACE_ROOT)/ace/pre.h \
@@ -2892,8 +2999,12 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Basic_Types.h \
$(ACE_ROOT)/ace/Basic_Types.i \
$(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i RTCORBA.h \
+ $(ACE_ROOT)/ace/OS.i RTCORBAC.h \
rtcorba_export.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/TAO_Export.h \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/CDR.h \
$(TAO_ROOT)/tao/corbafwd.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/Message_Block.h \
@@ -2963,12 +3074,7 @@ endif # corba_messaging
$(TAO_ROOT)/tao/try_macros.h \
$(ACE_ROOT)/ace/CORBA_macros.h \
$(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
$(TAO_ROOT)/tao/corbafwd.i \
- RTCORBAC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
$(TAO_ROOT)/tao/CDR.i \
@@ -3017,38 +3123,22 @@ endif # corba_messaging
RTCORBAC.i \
$(TAO_ROOT)/tao/LocalObject.h \
$(TAO_ROOT)/tao/LocalObject.i \
- Thread_Pool.h \
- $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
$(ACE_ROOT)/ace/Service_Object.h \
$(ACE_ROOT)/ace/Shared_Object.h \
$(ACE_ROOT)/ace/Shared_Object.i \
$(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
$(ACE_ROOT)/ace/Unbounded_Queue.h \
$(ACE_ROOT)/ace/Unbounded_Queue.inl \
$(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
$(ACE_ROOT)/ace/Service_Config.i \
$(ACE_ROOT)/ace/Reactor.h \
$(ACE_ROOT)/ace/Handle_Set.h \
@@ -3063,46 +3153,16 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Reactor.i \
$(ACE_ROOT)/ace/Reactor_Impl.h \
$(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
+ RT_ORB.i RT_Policy_i.h RT_Policy_i.i RT_Mutex.h \
+ Priority_Mapping_Manager.h Priority_Mapping.h Priority_Mapping.i \
+ Priority_Mapping_Manager.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
$(TAO_ROOT)/tao/ORB.h \
$(TAO_ROOT)/tao/Services.h \
$(TAO_ROOT)/tao/Services.i \
$(TAO_ROOT)/tao/CORBA_String.h \
$(TAO_ROOT)/tao/CORBA_String.inl \
$(TAO_ROOT)/tao/ORB.i \
- Thread_Pool.i RT_ORB.i RT_Policy_i.h RT_Policy_i.i RT_Mutex.h \
- Priority_Mapping_Manager.h Priority_Mapping.h Priority_Mapping.i \
- Priority_Mapping_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.h \
$(TAO_ROOT)/tao/Policy_Manager.h \
$(TAO_ROOT)/tao/Policy_Set.h \
$(TAO_ROOT)/tao/Policy_Set.i \
@@ -3139,12 +3199,68 @@ endif # corba_messaging
$(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
$(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
$(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
$(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
$(TAO_ROOT)/tao/Object_Ref_Table.h \
$(TAO_ROOT)/tao/Interceptor_List.h \
$(TAO_ROOT)/tao/Interceptor_List.inl \
$(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(TAO_ROOT)/tao/ORB_Core.i
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(TAO_ROOT)/tao/RTCORBA/Thread_Pool.h \
+ $(TAO_ROOT)/tao/RTCORBA/RTCORBAC.h \
+ $(TAO_ROOT)/tao/Thread_Lane_Resources.h \
+ $(TAO_ROOT)/tao/Thread_Lane_Resources.i \
+ $(TAO_ROOT)/tao/New_Leader_Generator.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/Process_Mutex.h \
+ $(ACE_ROOT)/ace/Process_Mutex.inl \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Task_T.cpp \
+ $(ACE_ROOT)/ace/Module.h \
+ $(ACE_ROOT)/ace/Module.i \
+ $(ACE_ROOT)/ace/Module.cpp \
+ $(ACE_ROOT)/ace/Stream_Modules.h \
+ $(ACE_ROOT)/ace/Stream_Modules.cpp \
+ $(TAO_ROOT)/tao/RTCORBA/Thread_Pool.i \
+ $(TAO_ROOT)/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.h \
+ $(TAO_ROOT)/tao/RTCORBA/rtcorba_export.h \
+ $(TAO_ROOT)/tao/Thread_Lane_Resources_Manager.h \
+ $(TAO_ROOT)/tao/Thread_Lane_Resources_Manager.i \
+ $(TAO_ROOT)/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.i
.obj/RT_ORBInitializer.o .obj/RT_ORBInitializer.so .shobj/RT_ORBInitializer.o .shobj/RT_ORBInitializer.so: RT_ORBInitializer.cpp RT_ORBInitializer.h \
$(ACE_ROOT)/ace/pre.h \
@@ -3306,8 +3422,11 @@ endif # corba_messaging
$(TAO_ROOT)/tao/PortableInterceptorC.i \
$(TAO_ROOT)/tao/LocalObject.h \
$(TAO_ROOT)/tao/LocalObject.i \
- RT_PolicyFactory.h RTCORBA.h RTCORBAC.h RTCORBAC.i RT_Policy_i.h \
- RT_Policy_i.i RT_Protocols_Hooks.h \
+ RT_PolicyFactory.h \
+ $(TAO_ROOT)/tao/RTCORBA/RTCORBAC.h \
+ $(TAO_ROOT)/tao/RTCORBA/rtcorba_export.h \
+ $(TAO_ROOT)/tao/RTCORBA/RTCORBAC.i \
+ RT_Policy_i.h RTCORBAC.h RT_Policy_i.i RT_Protocols_Hooks.h \
$(TAO_ROOT)/tao/Protocols_Hooks.h \
$(ACE_ROOT)/ace/Service_Object.h \
$(ACE_ROOT)/ace/Shared_Object.h \
@@ -3396,48 +3515,21 @@ endif # corba_messaging
$(TAO_ROOT)/tao/StringSeqC.h \
$(TAO_ROOT)/tao/StringSeqC.i \
$(TAO_ROOT)/tao/ORBInitInfo.inl \
- RT_ORB_Loader.h \
- $(TAO_ROOT)/tao/Object_Loader.h \
- $(TAO_ROOT)/tao/Object_Loader.i \
- RT_Stub_Factory.h \
+ RT_ORB_Loader.h RT_Stub_Factory.h \
$(TAO_ROOT)/tao/Stub_Factory.h \
RT_Endpoint_Selector_Factory.h \
$(TAO_ROOT)/tao/Endpoint_Selector_Factory.h \
+ Continuous_Priority_Mapping.h Continuous_Priority_Mapping.i \
Linear_Priority_Mapping.h Linear_Priority_Mapping.i \
- Direct_Priority_Mapping.h Direct_Priority_Mapping.i RT_ORB.h \
- Thread_Pool.h \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
+ Direct_Priority_Mapping.h Direct_Priority_Mapping.i RT_ORB.h RT_ORB.i \
+ RT_Current.h RT_Current.i RT_Thread_Lane_Resources_Manager.h \
+ $(TAO_ROOT)/tao/Thread_Lane_Resources_Manager.h \
+ $(TAO_ROOT)/tao/Thread_Lane_Resources_Manager.i \
+ $(TAO_ROOT)/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.i \
$(ACE_ROOT)/ace/Service_Repository.h \
$(ACE_ROOT)/ace/Service_Types.h \
$(ACE_ROOT)/ace/Service_Types.i \
$(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- Thread_Pool.i RT_ORB.i RT_Current.h RT_Current.i \
$(ACE_ROOT)/ace/Svc_Conf.h \
$(ACE_ROOT)/ace/Obstack.h \
$(ACE_ROOT)/ace/Obstack_T.h \
@@ -3460,13 +3552,8 @@ endif # corba_messaging
$(ACE_ROOT)/ace/OS_Errno.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/Object_Loader.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
$(ACE_ROOT)/ace/ACE.h \
$(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
@@ -3479,6 +3566,8 @@ endif # corba_messaging
$(ACE_ROOT)/ace/OS_TLI.inl \
$(ACE_ROOT)/ace/Min_Max.h \
$(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
$(ACE_ROOT)/ace/Trace.h \
$(ACE_ROOT)/ace/OS.i \
$(ACE_ROOT)/ace/Flag_Manip.h \
@@ -3492,15 +3581,12 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Sock_Connect.h \
$(ACE_ROOT)/ace/Sock_Connect.i \
$(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Signal.h \
$(ACE_ROOT)/ace/Synch.h \
$(ACE_ROOT)/ace/Synch.i \
$(ACE_ROOT)/ace/Synch_T.h \
@@ -3508,35 +3594,64 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Thread.h \
$(ACE_ROOT)/ace/Thread_Adapter.h \
$(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
$(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
$(ACE_ROOT)/ace/Thread_Adapter.inl \
$(ACE_ROOT)/ace/Thread.i \
$(ACE_ROOT)/ace/Atomic_Op.i \
$(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Unbounded_Queue.h \
+ $(ACE_ROOT)/ace/Node.h \
+ $(ACE_ROOT)/ace/Node.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Queue.inl \
+ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
$(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
$(ACE_ROOT)/ace/Free_List.h \
$(ACE_ROOT)/ace/Free_List.i \
$(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Test_and_Set.h \
+ $(ACE_ROOT)/ace/Test_and_Set.i \
+ $(ACE_ROOT)/ace/Test_and_Set.cpp \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ RT_ORBInitializer.h \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Base.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_Allocator.h \
+ $(ACE_ROOT)/ace/Malloc_Allocator.i \
$(ACE_ROOT)/ace/Malloc_T.i \
$(ACE_ROOT)/ace/Malloc_T.cpp \
$(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
$(ACE_ROOT)/ace/Mem_Map.h \
$(ACE_ROOT)/ace/Mem_Map.i \
$(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
$(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
$(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
$(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
$(ACE_ROOT)/ace/Memory_Pool.i \
$(ACE_ROOT)/ace/Message_Block.i \
$(ACE_ROOT)/ace/Message_Block_T.h \
@@ -3549,33 +3664,6 @@ endif # corba_messaging
$(TAO_ROOT)/tao/varbase.h \
$(TAO_ROOT)/tao/TAO_Export.h \
$(TAO_ROOT)/tao/corbafwd.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(TAO_ROOT)/tao/Object_Loader.i \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- RT_ORBInitializer.h \
$(TAO_ROOT)/tao/PortableInterceptorC.h \
$(TAO_ROOT)/tao/DynamicC.h \
$(TAO_ROOT)/tao/Any.h \
@@ -3590,6 +3678,8 @@ endif # corba_messaging
$(TAO_ROOT)/tao/Object_Proxy_Impl.h \
$(TAO_ROOT)/tao/Object.i \
$(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
$(TAO_ROOT)/tao/Typecode.i \
$(TAO_ROOT)/tao/Any.i \
$(TAO_ROOT)/tao/Sequence.h \
@@ -3857,7 +3947,7 @@ endif # corba_messaging
$(TAO_ROOT)/tao/PortableInterceptorC.i \
$(TAO_ROOT)/tao/LocalObject.h \
$(TAO_ROOT)/tao/LocalObject.i \
- RT_Policy_i.h RTCORBA.h RTCORBAC.h RTCORBAC.i RT_Policy_i.i
+ RT_Policy_i.h RTCORBAC.h RTCORBAC.i RT_Policy_i.i
.obj/RT_Policy_i.o .obj/RT_Policy_i.so .shobj/RT_Policy_i.o .shobj/RT_Policy_i.so: RT_Policy_i.cpp RT_Policy_i.h \
$(ACE_ROOT)/ace/pre.h \
@@ -3884,8 +3974,12 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Basic_Types.h \
$(ACE_ROOT)/ace/Basic_Types.i \
$(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i RTCORBA.h \
+ $(ACE_ROOT)/ace/OS.i RTCORBAC.h \
rtcorba_export.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/TAO_Export.h \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/CDR.h \
$(TAO_ROOT)/tao/corbafwd.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/Message_Block.h \
@@ -3955,12 +4049,7 @@ endif # corba_messaging
$(TAO_ROOT)/tao/try_macros.h \
$(ACE_ROOT)/ace/CORBA_macros.h \
$(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
$(TAO_ROOT)/tao/corbafwd.i \
- RTCORBAC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
$(TAO_ROOT)/tao/CDR.i \
@@ -4278,7 +4367,7 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Reactor.i \
$(ACE_ROOT)/ace/Reactor_Impl.h \
$(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- RT_Protocols_Hooks.i RT_Policy_i.h RTCORBA.h RT_Policy_i.i \
+ RT_Protocols_Hooks.i RT_Policy_i.h RT_Policy_i.i \
$(TAO_ROOT)/tao/Invocation.h \
$(TAO_ROOT)/tao/Stub.h \
$(TAO_ROOT)/tao/Pluggable.h \
@@ -4380,6 +4469,10 @@ endif # corba_messaging
$(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.h \
$(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.i \
$(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/Acceptor_Registry.h \
+ $(TAO_ROOT)/tao/Acceptor_Registry.i \
+ $(TAO_ROOT)/tao/Thread_Lane_Resources.h \
+ $(TAO_ROOT)/tao/Thread_Lane_Resources.i \
RT_Stub.h \
$(ACE_ROOT)/ace/Dynamic_Service.h \
$(ACE_ROOT)/ace/Dynamic_Service_Base.h \
@@ -4638,8 +4731,7 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Thread_Manager.i \
$(TAO_ROOT)/tao/ORB_Core.i \
$(TAO_ROOT)/tao/Stub.i \
- rtcorba_export.h RT_Policy_i.h RTCORBA.h RTCORBAC.h RTCORBAC.i \
- RT_Policy_i.i
+ rtcorba_export.h RT_Policy_i.h RTCORBAC.h RTCORBAC.i RT_Policy_i.i
.obj/RT_Stub_Factory.o .obj/RT_Stub_Factory.so .shobj/RT_Stub_Factory.o .shobj/RT_Stub_Factory.so: RT_Stub_Factory.cpp RT_Stub_Factory.h \
$(ACE_ROOT)/ace/pre.h \
@@ -4922,10 +5014,15 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Basic_Types.h \
$(ACE_ROOT)/ace/Basic_Types.i \
$(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/OS.i RTCORBAC.h \
+ rtcorba_export.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/TAO_Export.h \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Base.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
$(ACE_ROOT)/ace/ACE.h \
$(ACE_ROOT)/ace/Flag_Manip.h \
$(ACE_ROOT)/ace/Flag_Manip.i \
@@ -4938,70 +5035,38 @@ endif # corba_messaging
$(ACE_ROOT)/ace/Sock_Connect.h \
$(ACE_ROOT)/ace/Sock_Connect.i \
$(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
$(ACE_ROOT)/ace/Synch.h \
$(ACE_ROOT)/ace/Synch.i \
$(ACE_ROOT)/ace/Synch_T.h \
$(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread.i \
$(ACE_ROOT)/ace/Atomic_Op.i \
$(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
+ $(ACE_ROOT)/ace/Malloc_Allocator.h \
$(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Malloc_Allocator.i \
$(ACE_ROOT)/ace/Free_List.h \
$(ACE_ROOT)/ace/Free_List.i \
$(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
$(ACE_ROOT)/ace/Malloc_T.i \
$(ACE_ROOT)/ace/Malloc_T.cpp \
$(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
$(ACE_ROOT)/ace/Signal.h \
$(ACE_ROOT)/ace/Signal.i \
$(ACE_ROOT)/ace/Mem_Map.h \
@@ -5010,77 +5075,21 @@ endif # corba_messaging
$(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
$(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
$(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Node.h \
+ $(ACE_ROOT)/ace/Node.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
$(ACE_ROOT)/ace/Memory_Pool.i \
$(ACE_ROOT)/ace/Message_Block.i \
$(ACE_ROOT)/ace/Message_Block_T.h \
$(ACE_ROOT)/ace/Message_Block_T.i \
$(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- RTCORBA.h rtcorba_export.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
$(TAO_ROOT)/tao/try_macros.h \
$(ACE_ROOT)/ace/CORBA_macros.h \
$(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
$(TAO_ROOT)/tao/corbafwd.i \
- RTCORBAC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
$(TAO_ROOT)/tao/CDR.i \
@@ -5092,6 +5101,8 @@ endif # corba_messaging
$(TAO_ROOT)/tao/Object.i \
$(TAO_ROOT)/tao/Typecode.h \
$(TAO_ROOT)/tao/Exception.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
$(TAO_ROOT)/tao/Exception.i \
$(TAO_ROOT)/tao/Typecode.i \
$(TAO_ROOT)/tao/Any.i \
@@ -5109,6 +5120,11 @@ endif # corba_messaging
$(TAO_ROOT)/tao/TAO_Singleton.h \
$(TAO_ROOT)/tao/TAO_Singleton.inl \
$(TAO_ROOT)/tao/TAO_Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
$(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
$(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
$(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
@@ -5120,17 +5136,95 @@ endif # corba_messaging
$(TAO_ROOT)/tao/CurrentC.i \
$(TAO_ROOT)/tao/PolicyC.i \
RTCORBAC.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Unbounded_Queue.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.inl \
+ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Test_and_Set.h \
+ $(ACE_ROOT)/ace/Test_and_Set.i \
+ $(ACE_ROOT)/ace/Test_and_Set.cpp \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Thread_Lane_Resources.h \
+ $(TAO_ROOT)/tao/Thread_Lane_Resources.i \
+ $(TAO_ROOT)/tao/New_Leader_Generator.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/Process_Mutex.h \
+ $(ACE_ROOT)/ace/Process_Mutex.inl \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Task_T.cpp \
+ $(ACE_ROOT)/ace/Module.h \
+ $(ACE_ROOT)/ace/Module.i \
+ $(ACE_ROOT)/ace/Module.cpp \
+ $(ACE_ROOT)/ace/Stream_Modules.h \
+ $(ACE_ROOT)/ace/Stream_Modules.cpp \
+ Thread_Pool.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.h \
+ $(ACE_ROOT)/ace/Auto_Ptr.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.cpp \
+ $(TAO_ROOT)/tao/ORB_Core.h \
$(TAO_ROOT)/tao/ORB.h \
$(TAO_ROOT)/tao/Services.h \
$(TAO_ROOT)/tao/Services.i \
$(TAO_ROOT)/tao/CORBA_String.h \
$(TAO_ROOT)/tao/CORBA_String.inl \
$(TAO_ROOT)/tao/ORB.i \
- Thread_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(TAO_ROOT)/tao/ORB_Core.h \
$(TAO_ROOT)/tao/Policy_Manager.h \
$(TAO_ROOT)/tao/Policy_Set.h \
$(TAO_ROOT)/tao/Policy_Set.i \
@@ -5174,6 +5268,34 @@ endif # corba_messaging
$(TAO_ROOT)/tao/Interceptor_List.h \
$(TAO_ROOT)/tao/Interceptor_List.inl \
$(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(TAO_ROOT)/tao/ORB_Core.i
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(TAO_ROOT)/tao/Acceptor_Registry.h \
+ $(TAO_ROOT)/tao/Acceptor_Registry.i \
+ $(TAO_ROOT)/tao/Transport_Cache_Manager.h \
+ $(TAO_ROOT)/tao/Cache_Entries.h \
+ $(TAO_ROOT)/tao/Transport_Descriptor_Interface.h \
+ $(TAO_ROOT)/tao/Endpoint.h \
+ $(TAO_ROOT)/tao/Endpoint.i \
+ $(TAO_ROOT)/tao/Transport_Descriptor_Interface.inl \
+ $(TAO_ROOT)/tao/Cache_Entries.inl \
+ $(TAO_ROOT)/tao/Connection_Purging_Strategy.h \
+ $(TAO_ROOT)/tao/Connection_Purging_Strategy.inl \
+ $(TAO_ROOT)/tao/Transport_Cache_Manager.inl \
+ $(TAO_ROOT)/tao/RTCORBA/Priority_Mapping_Manager.h \
+ $(TAO_ROOT)/tao/RTCORBA/rtcorba_export.h \
+ $(TAO_ROOT)/tao/RTCORBA/Priority_Mapping.h \
+ $(TAO_ROOT)/tao/RTCORBA/RTCORBAC.h \
+ $(TAO_ROOT)/tao/RTCORBA/Priority_Mapping.i \
+ $(TAO_ROOT)/tao/RTCORBA/Priority_Mapping_Manager.i \
+ $(TAO_ROOT)/tao/Leader_Follower.h \
+ $(TAO_ROOT)/tao/LF_Follower.h \
+ $(ACE_ROOT)/ace/Intrusive_List_Node.h \
+ $(ACE_ROOT)/ace/Intrusive_List_Node.inl \
+ $(ACE_ROOT)/ace/Intrusive_List_Node.cpp \
+ $(TAO_ROOT)/tao/LF_Follower.inl \
+ $(ACE_ROOT)/ace/Intrusive_List.h \
+ $(ACE_ROOT)/ace/Intrusive_List.inl \
+ $(ACE_ROOT)/ace/Intrusive_List.cpp \
+ $(TAO_ROOT)/tao/Leader_Follower.i
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/TAO/tao/RTCORBA/Makefile.bor b/TAO/tao/RTCORBA/Makefile.bor
index 853e3096f4e..8cbfede95ce 100644
--- a/TAO/tao/RTCORBA/Makefile.bor
+++ b/TAO/tao/RTCORBA/Makefile.bor
@@ -5,9 +5,10 @@
NAME = TAO_RTCORBA
OBJFILES = \
+ $(OBJDIR)\Continuous_Priority_Mapping.obj \
$(OBJDIR)\Direct_Priority_Mapping.obj \
$(OBJDIR)\Linear_Priority_Mapping.obj \
- $(OBJDIR)\Pool_Per_Endpoint.obj \
+ $(OBJDIR)\RT_Thread_Lane_Resources_Manager.obj \
$(OBJDIR)\Priority_Mapping.obj \
$(OBJDIR)\Priority_Mapping_Manager.obj \
$(OBJDIR)\Private_Transport_Descriptor.obj \
diff --git a/TAO/tao/RTCORBA/Pool_Per_Endpoint.cpp b/TAO/tao/RTCORBA/Pool_Per_Endpoint.cpp
deleted file mode 100644
index 5a926b83ed4..00000000000
--- a/TAO/tao/RTCORBA/Pool_Per_Endpoint.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-// $Id$
-
-#include "Pool_Per_Endpoint.h"
-#include "tao/ORB.h"
-#include "tao/ORB_Core.h"
-#include "tao/Acceptor_Registry.h"
-#include "tao/Pluggable.h"
-#include "Priority_Mapping_Manager.h"
-#include "tao/debug.h"
-#include "ace/Sched_Params.h"
-
-#if !defined (__ACE_INLINE__)
-# include "Pool_Per_Endpoint.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID(tao, Pool_Per_Endpoint, "$Id$")
-
-TAO_Pool_Per_Endpoint::TAO_Pool_Per_Endpoint (CORBA::ORB_ptr orb,
- int policy,
- int poolsize,
- int flags)
- : orb_ (CORBA::ORB::_duplicate (orb)),
- policy_ (policy),
- poolsize_ (poolsize),
- flags_ (flags)
-{
- this->thr_mgr (&this->thread_manager_);
-}
-
-TAO_Pool_Per_Endpoint::~TAO_Pool_Per_Endpoint (void)
-{
-}
-
-void
-TAO_Pool_Per_Endpoint::run (CORBA::Environment &ACE_TRY_ENV)
-{
- CORBA::Object_var obj =
- this->orb_->resolve_initial_references (TAO_OBJID_PRIORITYMAPPINGMANAGER,
- ACE_TRY_ENV);
-
- TAO_Priority_Mapping_Manager_var mapping_manager =
- TAO_Priority_Mapping_Manager::_narrow (obj.in (),
- ACE_TRY_ENV);
- ACE_CHECK;
-
- RTCORBA::PriorityMapping *pm =
- mapping_manager.in ()->mapping ();
-
- TAO_Acceptor_Registry *ac =
- this->orb_->orb_core ()->acceptor_registry ();
-
- for (TAO_AcceptorSetIterator i = ac->begin (); i != ac->end (); ++i)
- {
- int priority =
- ACE_Sched_Params::priority_min (this->policy_);
-
- const CORBA::Short corba_priority = (*i)->priority ();
- CORBA::Short native_priority;
- if (pm->to_native (corba_priority, native_priority) == 1)
- priority = native_priority;
- else
- ACE_THROW (CORBA::DATA_CONVERSION ());
-
- if (TAO_debug_level > 3)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("TAO (%P|%t) - creating thread at ")
- ACE_TEXT ("priority %d:%d\n"),
- priority,
- corba_priority));
-
- if (this->activate (this->flags_,
- this->poolsize_, /* number of threads */
- 1, /* force active */
- priority) == -1)
- {
- ACE_THROW (CORBA::INTERNAL ());
- }
- }
- this->thread_manager_.wait ();
-}
-
-int
-TAO_Pool_Per_Endpoint::svc (void)
-{
- if (TAO_debug_level > 3)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("TAO (%P|%t) - TAO_Pool_Per_Endpoint::svc: ")
- ACE_TEXT (" using reactor <%x> in this thread\n"),
- this->orb_->orb_core ()->reactor ()));
-
- this->orb_->run (); // @@ Where's the error/exception check?
-
- if (TAO_debug_level > 3)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("TAO (%P|%t) - TAO_Pool_Per_Endpoint::svc: ")
- ACE_TEXT (" ORB::run() finished\n")));
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/tao/RTCORBA/Pool_Per_Endpoint.h b/TAO/tao/RTCORBA/Pool_Per_Endpoint.h
deleted file mode 100644
index 34478d5dae1..00000000000
--- a/TAO/tao/RTCORBA/Pool_Per_Endpoint.h
+++ /dev/null
@@ -1,79 +0,0 @@
-
-//=============================================================================
-/**
- * @file Pool_Per_Endpoint.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan (coryan@cs.wustl.edu)
- */
-//=============================================================================
-
-
-#ifndef TAO_POOL_PER_ENDPOINT_H
-#define TAO_POOL_PER_ENDPOINT_H
-#include "ace/pre.h"
-
-#include "rtcorba_export.h"
-#include "tao/ORB.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Task.h"
-
-/**
- * @class TAO_Pool_Per_Endpoint
- *
- * @brief The Pool_Per_Endpoint concurrency strategy.
- *
- * This strategy creates a separate thread pool for each endpoint
- * in the system. It is a helper class to manage and create the
- * required threads.
- * It should be used with the Reactor_Per_Endpoint registry
- * configured.
- */
-class TAO_RTCORBA_Export TAO_Pool_Per_Endpoint : public ACE_Task_Base
-{
-public:
- /// Constructor
- TAO_Pool_Per_Endpoint (CORBA::ORB_ptr orb,
- int policy = ACE_SCHED_OTHER,
- int poolsize = 1,
- int flags =
- THR_BOUND|THR_NEW_LWP|THR_JOINABLE);
-
- /// The destructor
- virtual ~TAO_Pool_Per_Endpoint (void);
-
- /// Run all the threads and wait until they finish
- void run (CORBA::Environment &ACE_TRY_ENV =
- TAO_default_environment ());
-
- // = The Task_Base entry point
- int svc (void);
-
-private:
- /// The ORB.
- CORBA::ORB_var orb_;
-
- /// The scheduling policy to activate the threads.
- int policy_;
-
- /// The number of threads on each pool.
- int poolsize_;
-
- /// The flags used to create the threads
- int flags_;
-
- /// The thread manager.
- ACE_Thread_Manager thread_manager_;
-};
-
-#if defined (__ACE_INLINE__)
-# include "Pool_Per_Endpoint.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* TAO_POOL_PER_ENDPOINT_H */
diff --git a/TAO/tao/RTCORBA/RTCORBA.cpp b/TAO/tao/RTCORBA/RTCORBA.cpp
index 0a1a0bc60da..ec3204eb284 100644
--- a/TAO/tao/RTCORBA/RTCORBA.cpp
+++ b/TAO/tao/RTCORBA/RTCORBA.cpp
@@ -2,19 +2,10 @@
#include "RTCORBA.h"
#include "RT_ORB_Loader.h"
-#include "RT_Protocols_Hooks.h"
ACE_RCSID (RTCORBA, RTCORBA, "$Id$")
TAO_RTCORBA_Initializer::TAO_RTCORBA_Initializer (void)
{
- TAO_RTCORBA_Initializer::init ();
-}
-
-int
-TAO_RTCORBA_Initializer::init (void)
-{
ACE_Service_Config::static_svcs ()->insert (&ace_svc_desc_TAO_RT_ORB_Loader);
- ACE_Service_Config::static_svcs ()->insert (&ace_svc_desc_TAO_RT_Protocols_Hooks);
- return 0;
}
diff --git a/TAO/tao/RTCORBA/RTCORBA.h b/TAO/tao/RTCORBA/RTCORBA.h
index c23226addc6..e0541e6c572 100644
--- a/TAO/tao/RTCORBA/RTCORBA.h
+++ b/TAO/tao/RTCORBA/RTCORBA.h
@@ -30,16 +30,13 @@ class TAO_RTCORBA_Export TAO_RTCORBA_Initializer
public:
// Constructor.
TAO_RTCORBA_Initializer (void);
-
- static int init (void);
- // Used to force the initialization of the ORB code.
};
+static TAO_RTCORBA_Initializer TAO_RTCORBA_initializer;
+
#define TAO_RTCORBA_SAFE_INCLUDE
#include "RTCORBAC.h"
#undef TAO_RTCORBA_SAFE_INCLUDE
-static TAO_RTCORBA_Initializer TAO_RTCORBA_initializer;
-
#include "ace/post.h"
#endif /* TAO_RTCORBA_H_ */
diff --git a/TAO/tao/RTCORBA/RT_Current.h b/TAO/tao/RTCORBA/RT_Current.h
index 672125529b9..856e3d63706 100644
--- a/TAO/tao/RTCORBA/RT_Current.h
+++ b/TAO/tao/RTCORBA/RT_Current.h
@@ -17,7 +17,10 @@
#include "tao/orbconf.h"
-#include "RTCORBA.h"
+#define TAO_RTCORBA_SAFE_INCLUDE
+#include "RTCORBAC.h"
+#undef TAO_RTCORBA_SAFE_INCLUDE
+
#include "tao/LocalObject.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
diff --git a/TAO/tao/RTCORBA/RT_Endpoint_Selector_Factory.cpp b/TAO/tao/RTCORBA/RT_Endpoint_Selector_Factory.cpp
index a87cff52a16..425c34bee14 100644
--- a/TAO/tao/RTCORBA/RT_Endpoint_Selector_Factory.cpp
+++ b/TAO/tao/RTCORBA/RT_Endpoint_Selector_Factory.cpp
@@ -27,8 +27,8 @@ RT_Endpoint_Selector_Factory::RT_Endpoint_Selector_Factory (void)
ACE_NEW (this->bands_protocol_selector_,
TAO_Bands_Protocol_Selector);
- ACE_NEW (this->default_endpoint_selector_,
- TAO_Default_Endpoint_Selector);
+ ACE_NEW (this->rt_default_endpoint_selector_,
+ TAO_RT_Default_Endpoint_Selector);
}
RT_Endpoint_Selector_Factory::~RT_Endpoint_Selector_Factory (void)
@@ -38,7 +38,7 @@ RT_Endpoint_Selector_Factory::~RT_Endpoint_Selector_Factory (void)
delete this->protocol_endpoint_selector_;
delete this->priority_protocol_selector_;
delete this->bands_protocol_selector_;
- delete this->default_endpoint_selector_;
+ delete this->rt_default_endpoint_selector_;
}
TAO_Invocation_Endpoint_Selector *
@@ -57,8 +57,8 @@ RT_Endpoint_Selector_Factory::get_selector (TAO_GIOP_Invocation *invocation,
ACE_THROW_RETURN (CORBA::INTERNAL (
CORBA_SystemException::_tao_minor_code (
- TAO_DEFAULT_MINOR_CODE,
- EINVAL),
+ TAO_DEFAULT_MINOR_CODE,
+ EINVAL),
CORBA::COMPLETED_NO),
0);
}
@@ -97,7 +97,7 @@ RT_Endpoint_Selector_Factory::get_selector (TAO_GIOP_Invocation *invocation,
}
if (client_protocol_policy.ptr () == 0)
- return this->default_endpoint_selector_;
+ return this->rt_default_endpoint_selector_;
else
return this->protocol_endpoint_selector_;
}
@@ -135,7 +135,7 @@ RT_Endpoint_Selector_Factory::get_selector (TAO_GIOP_Invocation *invocation,
{
// CASE 5: SERVER_DECLARED priority model, no bands.
if (client_protocol_policy.ptr () == 0)
- return this->default_endpoint_selector_;
+ return this->rt_default_endpoint_selector_;
else
return this->protocol_endpoint_selector_;
}
@@ -183,4 +183,3 @@ ACE_STATIC_SVC_DEFINE (RT_Endpoint_Selector_Factory,
ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
0)
ACE_FACTORY_DEFINE (TAO_RTCORBA, RT_Endpoint_Selector_Factory)
-
diff --git a/TAO/tao/RTCORBA/RT_Endpoint_Selector_Factory.h b/TAO/tao/RTCORBA/RT_Endpoint_Selector_Factory.h
index 43cf89279b2..9d73b7392a1 100644
--- a/TAO/tao/RTCORBA/RT_Endpoint_Selector_Factory.h
+++ b/TAO/tao/RTCORBA/RT_Endpoint_Selector_Factory.h
@@ -32,7 +32,7 @@ class TAO_Bands_Endpoint_Selector;
class TAO_Protocol_Endpoint_Selector;
class TAO_Priority_Protocol_Selector;
class TAO_Bands_Protocol_Selector;
-class TAO_Default_Endpoint_Selector;
+class TAO_RT_Default_Endpoint_Selector;
// ****************************************************************
/**
@@ -85,7 +85,7 @@ private:
/// The possible endpoint selector strategies that can be
/// returned by this factory
- TAO_Default_Endpoint_Selector *default_endpoint_selector_;
+ TAO_RT_Default_Endpoint_Selector *rt_default_endpoint_selector_;
TAO_Priority_Endpoint_Selector *priority_endpoint_selector_;
TAO_Bands_Endpoint_Selector *bands_endpoint_selector_;
TAO_Protocol_Endpoint_Selector *protocol_endpoint_selector_;
diff --git a/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp b/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp
index 70070e94104..544eab43d41 100644
--- a/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp
+++ b/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp
@@ -21,6 +21,54 @@ ACE_RCSID(tao, RT_Invocation_Endpoint_Selectors, "$Id$")
// ****************************************************************
+void
+TAO_RT_Default_Endpoint_Selector::select_endpoint (TAO_GIOP_Invocation *invocation,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ TAO_RT_Stub *rt_stub =
+ ACE_dynamic_cast (TAO_RT_Stub *,
+ invocation->stub ());
+
+ do
+ {
+ invocation->profile (invocation->stub ()->profile_in_use ());
+ invocation->endpoint (invocation->profile ()->endpoint ());
+
+ // If known endpoint, select it.
+ if (invocation->endpoint () != 0)
+ {
+ int status;
+ if (rt_stub->private_connection ())
+ {
+ TAO_Private_Transport_Descriptor private_desc (invocation->endpoint (),
+ ACE_reinterpret_cast (long, invocation->stub ()));
+
+ status = invocation->perform_call (private_desc, ACE_TRY_ENV);
+ ACE_CHECK;
+ }
+ else
+ {
+ TAO_Base_Transport_Property default_desc (invocation->endpoint ());
+
+ status = invocation->perform_call (default_desc, ACE_TRY_ENV);
+ ACE_CHECK;
+ }
+
+ // Check if the invocation has completed.
+ if (status == 1)
+ return;
+ }
+ }
+ while (invocation->stub ()->next_profile_retry () != 0);
+
+ // If we get here, we completely failed to find an endpoint selector
+ // that we know how to use, so throw an exception.
+ ACE_THROW (CORBA::TRANSIENT (TAO_OMG_VMCID | 2,
+ CORBA::COMPLETED_NO));
+}
+
+// ****************************************************************
+
TAO_Priority_Endpoint_Selector::~TAO_Priority_Endpoint_Selector (void)
{
}
diff --git a/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.h b/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.h
index ea1e1092a83..32dee2d0702 100644
--- a/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.h
+++ b/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.h
@@ -30,6 +30,25 @@
#include "tao/Invocation_Endpoint_Selectors.h"
/**
+ * @class TAO_RT_Default_Endpoint_Selector
+ *
+ * @brief TAO_RT_Default_Endpoint_Selector
+ *
+ * This strategy is used when the only policy that might be set is the
+ * private connection policy.
+ *
+ **/
+class TAO_RTCORBA_Export TAO_RT_Default_Endpoint_Selector :
+ public TAO_Default_Endpoint_Selector
+{
+public:
+ virtual void select_endpoint (TAO_GIOP_Invocation *invocation,
+ CORBA::Environment &ACE_TRY_ENV);
+};
+
+// ****************************************************************
+
+/**
* @class TAO_Priority_Endpoint_Selector
*
* @brief TAO_Priority_Endpoint_Selector
@@ -49,8 +68,7 @@ public:
virtual ~TAO_Priority_Endpoint_Selector (void);
virtual void select_endpoint (TAO_GIOP_Invocation *invocation,
- CORBA::Environment &ACE_TRY_ENV =
- TAO_default_environment ());
+ CORBA::Environment &ACE_TRY_ENV);
private:
/// Helper for <select_endpoint>.
int is_multihomed (TAO_Endpoint *endpoint);
@@ -78,8 +96,7 @@ public:
virtual ~TAO_Bands_Endpoint_Selector (void);
virtual void select_endpoint (TAO_GIOP_Invocation *invocation,
- CORBA::Environment &ACE_TRY_ENV =
- TAO_default_environment ());
+ CORBA::Environment &ACE_TRY_ENV);
};
// ****************************************************************
@@ -105,15 +122,12 @@ public:
virtual ~TAO_Protocol_Endpoint_Selector (void);
virtual void select_endpoint (TAO_GIOP_Invocation *invocation,
- CORBA::Environment &ACE_TRY_ENV =
- TAO_default_environment ());
+ CORBA::Environment &ACE_TRY_ENV);
virtual void next (TAO_GIOP_Invocation *invocation,
- CORBA::Environment &ACE_TRY_ENV =
- TAO_default_environment ());
+ CORBA::Environment &ACE_TRY_ENV);
virtual void forward (TAO_GIOP_Invocation *invocation,
const TAO_MProfile &mprofile,
- CORBA::Environment &ACE_TRY_ENV =
- TAO_default_environment ());
+ CORBA::Environment &ACE_TRY_ENV);
virtual void success (TAO_GIOP_Invocation *invocation);
virtual void close_connection (TAO_GIOP_Invocation *invocation);
};
diff --git a/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.i b/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.i
index f38e9b32fc6..916934eb0f3 100644
--- a/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.i
+++ b/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.i
@@ -33,4 +33,3 @@ ACE_INLINE
TAO_Bands_Protocol_Selector::TAO_Bands_Protocol_Selector (void)
{
}
-
diff --git a/TAO/tao/RTCORBA/RT_Mutex.cpp b/TAO/tao/RTCORBA/RT_Mutex.cpp
index c35317aade1..57e18ff2942 100644
--- a/TAO/tao/RTCORBA/RT_Mutex.cpp
+++ b/TAO/tao/RTCORBA/RT_Mutex.cpp
@@ -57,7 +57,9 @@ TAO_RT_Mutex::try_lock (TimeBase::TimeT wait_time,
if (result == 0)
return 1;
- else if (result == -1 && errno == ETIME)
+ else if (result == -1 &&
+ (errno == ETIME ||
+ errno == EBUSY))
return 0;
else
// Some really bad error.
diff --git a/TAO/tao/RTCORBA/RT_Mutex.h b/TAO/tao/RTCORBA/RT_Mutex.h
index efb30d24418..c16cb59a3b7 100644
--- a/TAO/tao/RTCORBA/RT_Mutex.h
+++ b/TAO/tao/RTCORBA/RT_Mutex.h
@@ -20,7 +20,10 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "RTCORBA.h"
+#define TAO_RTCORBA_SAFE_INCLUDE
+#include "RTCORBAC.h"
+#undef TAO_RTCORBA_SAFE_INCLUDE
+
#include "tao/LocalObject.h"
#if defined(_MSC_VER)
diff --git a/TAO/tao/RTCORBA/RT_ORB.cpp b/TAO/tao/RTCORBA/RT_ORB.cpp
index 918570112b8..037fa0238ba 100644
--- a/TAO/tao/RTCORBA/RT_ORB.cpp
+++ b/TAO/tao/RTCORBA/RT_ORB.cpp
@@ -5,6 +5,8 @@
#include "RT_Mutex.h"
#include "Priority_Mapping_Manager.h"
#include "tao/ORB_Core.h"
+#include "tao/RTCORBA/Thread_Pool.h"
+#include "tao/RTCORBA/RT_Thread_Lane_Resources_Manager.h"
#if ! defined (__ACE_INLINE__)
#include "RT_ORB.i"
@@ -12,85 +14,19 @@
ACE_RCSID(TAO, RT_ORB, "$Id$")
-class TAO_RT_CORBA_Priority_Normalizer : public TAO_CORBA_Priority_Normalizer
-{
-public:
- /// Constructor.
- TAO_RT_CORBA_Priority_Normalizer (TAO_ORB_Core *orb_core);
-
- /// Normalize CORBA Priority
- CORBA::Boolean normalize (CORBA::Short corba_priority,
- CORBA::Short &normalized_corba_priority);
-
-private:
- // Reference to the priority mapping.
- RTCORBA::PriorityMapping *priority_mapping_;
-};
-
-TAO_RT_CORBA_Priority_Normalizer::TAO_RT_CORBA_Priority_Normalizer (TAO_ORB_Core *orb_core)
-{
- ACE_DECLARE_NEW_CORBA_ENV;
- ACE_TRY
- {
- // Save a reference to the priority mapping manager.
- CORBA::Object_var obj =
- orb_core->object_ref_table ().resolve_initial_references (
- TAO_OBJID_PRIORITYMAPPINGMANAGER,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- TAO_Priority_Mapping_Manager_var mapping_manager =
- TAO_Priority_Mapping_Manager::_narrow (obj.in (),
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- if (CORBA::is_nil (mapping_manager.in ()))
- ACE_TRY_THROW (CORBA::INTERNAL ());
-
- this->priority_mapping_ =
- mapping_manager->mapping ();
- }
- ACE_CATCHANY
- {
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
- "(%P|%t) ERROR: Problem in CORBA Priority "
- "Normalizer constructor.\n");
-
- return;
- }
- ACE_ENDTRY;
-}
-
-CORBA::Boolean
-TAO_RT_CORBA_Priority_Normalizer::normalize (CORBA::Short corba_priority,
- CORBA::Short &normalized_corba_priority)
-{
- CORBA::Short native_priority;
-
- CORBA::Boolean result =
- this->priority_mapping_->to_native (corba_priority,
- native_priority);
- if (result == 0)
- return 0;
-
- result =
- this->priority_mapping_->to_CORBA (native_priority,
- normalized_corba_priority);
- if (result == 0)
- return 0;
-
- return 1;
-}
-
TAO_RT_ORB::TAO_RT_ORB (TAO_ORB_Core *orb_core)
: orb_core_ (orb_core),
mutex_mgr_ (),
- tp_manager_ (orb_core)
+ tp_manager_ (0)
{
- TAO_RT_CORBA_Priority_Normalizer *corba_priority_normalizer = 0;
- ACE_NEW (corba_priority_normalizer,
- TAO_RT_CORBA_Priority_Normalizer (this->orb_core_));
- this->orb_core_->corba_priority_normalizer (corba_priority_normalizer);
+ TAO_Thread_Lane_Resources_Manager *thread_lane_resources_manager =
+ &this->orb_core_->thread_lane_resources_manager ();
+
+ TAO_RT_Thread_Lane_Resources_Manager *rt_thread_lane_resources_manager =
+ (TAO_RT_Thread_Lane_Resources_Manager *) thread_lane_resources_manager;
+
+ this->tp_manager_ =
+ &rt_thread_lane_resources_manager->tp_manager ();
}
TAO_RT_ORB::~TAO_RT_ORB (void)
@@ -327,14 +263,14 @@ TAO_RT_ORB::create_threadpool (CORBA::ULong stacksize,
CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- return this->tp_manager_.create_threadpool (stacksize,
- static_threads,
- dynamic_threads,
- default_priority,
- allow_request_buffering,
- max_buffered_requests,
- max_request_buffer_size,
- ACE_TRY_ENV);
+ return this->tp_manager_->create_threadpool (stacksize,
+ static_threads,
+ dynamic_threads,
+ default_priority,
+ allow_request_buffering,
+ max_buffered_requests,
+ max_request_buffer_size,
+ ACE_TRY_ENV);
}
RTCORBA::ThreadpoolId
@@ -347,13 +283,13 @@ TAO_RT_ORB::create_threadpool_with_lanes (CORBA::ULong stacksize,
CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- return this->tp_manager_.create_threadpool_with_lanes (stacksize,
- lanes,
- allow_borrowing,
- allow_request_buffering,
- max_buffered_requests,
- max_request_buffer_size,
- ACE_TRY_ENV);
+ return this->tp_manager_->create_threadpool_with_lanes (stacksize,
+ lanes,
+ allow_borrowing,
+ allow_request_buffering,
+ max_buffered_requests,
+ max_request_buffer_size,
+ ACE_TRY_ENV);
}
void
@@ -362,8 +298,8 @@ TAO_RT_ORB::destroy_threadpool (RTCORBA::ThreadpoolId threadpool,
ACE_THROW_SPEC ((CORBA::SystemException,
RTCORBA::RTORB::InvalidThreadpool))
{
- this->tp_manager_.destroy_threadpool (threadpool,
- ACE_TRY_ENV);
+ this->tp_manager_->destroy_threadpool (threadpool,
+ ACE_TRY_ENV);
}
RTCORBA::PriorityModelPolicy_ptr
@@ -457,6 +393,12 @@ TAO_RT_ORB::create_client_protocol_policy (const RTCORBA::ProtocolList & protoco
return tmp;
}
+TAO_Thread_Pool_Manager &
+TAO_RT_ORB::tp_manager (void)
+{
+ return *this->tp_manager_;
+}
+
////////////////////////////////////////////////////////////////////////////////
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
diff --git a/TAO/tao/RTCORBA/RT_ORB.h b/TAO/tao/RTCORBA/RT_ORB.h
index 3b248d9f12e..55f7f5bd2b5 100644
--- a/TAO/tao/RTCORBA/RT_ORB.h
+++ b/TAO/tao/RTCORBA/RT_ORB.h
@@ -19,9 +19,11 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "RTCORBA.h"
+#define TAO_RTCORBA_SAFE_INCLUDE
+#include "RTCORBAC.h"
+#undef TAO_RTCORBA_SAFE_INCLUDE
+
#include "tao/LocalObject.h"
-#include "Thread_Pool.h"
#include "ace/Hash_Map_Manager_T.h"
#if defined(_MSC_VER)
@@ -33,6 +35,7 @@
// Forward reference for TAO_Named_RT_Mutex_Manager
class TAO_RT_Mutex;
+class TAO_Thread_Pool_Manager;
/**
* @class TAO_Named_RT_Mutex_Manager
@@ -255,6 +258,9 @@ public:
TAO_default_environment ())
ACE_THROW_SPEC ((CORBA::SystemException));
+ /// Get the Thread Pool Manager.
+ TAO_Thread_Pool_Manager &tp_manager (void);
+
protected:
/// Protected destructor to enforce proper memory management of this
/// reference counted object.
@@ -266,8 +272,8 @@ protected:
/// mutex_mgr_ manages the names associated with named mutexes.
TAO_Named_RT_Mutex_Manager mutex_mgr_;
- /// Thread Pool Manager.
- TAO_Thread_Pool_Manager tp_manager_;
+ /// Thread Pool Manager
+ TAO_Thread_Pool_Manager *tp_manager_;
};
#if defined (__ACE_INLINE__)
diff --git a/TAO/tao/RTCORBA/RT_ORBInitializer.cpp b/TAO/tao/RTCORBA/RT_ORBInitializer.cpp
index 81ecf82234d..c9e95c163db 100644
--- a/TAO/tao/RTCORBA/RT_ORBInitializer.cpp
+++ b/TAO/tao/RTCORBA/RT_ORBInitializer.cpp
@@ -6,7 +6,10 @@
ACE_RCSID (TAO, RT_ORBInitializer, "$Id$")
-#include "RTCORBA.h"
+#define TAO_RTCORBA_SAFE_INCLUDE
+#include "tao/RTCORBA/RTCORBAC.h"
+#undef TAO_RTCORBA_SAFE_INCLUDE
+
#include "RT_Policy_i.h"
#include "RT_Protocols_Hooks.h"
#include "Priority_Mapping_Manager.h"
@@ -16,10 +19,12 @@ ACE_RCSID (TAO, RT_ORBInitializer, "$Id$")
#include "RT_ORB_Loader.h"
#include "RT_Stub_Factory.h"
#include "RT_Endpoint_Selector_Factory.h"
+#include "Continuous_Priority_Mapping.h"
#include "Linear_Priority_Mapping.h"
#include "Direct_Priority_Mapping.h"
#include "RT_ORB.h"
#include "RT_Current.h"
+#include "RT_Thread_Lane_Resources_Manager.h"
#include "ace/Service_Repository.h"
#include "ace/Svc_Conf.h"
@@ -28,9 +33,11 @@ static const char *rt_poa_factory_name = "TAO_RT_POA";
static const char *rt_poa_factory_directive = "dynamic TAO_RT_POA Service_Object * TAO_RTPortableServer:_make_TAO_RT_Object_Adapter_Factory()";
TAO_RT_ORBInitializer::TAO_RT_ORBInitializer (int priority_mapping_type,
- int sched_policy)
+ long sched_policy,
+ long scope_policy)
: priority_mapping_type_ (priority_mapping_type),
- sched_policy_ (sched_policy)
+ sched_policy_ (sched_policy),
+ scope_policy_ (scope_policy)
{
}
@@ -42,27 +49,30 @@ TAO_RT_ORBInitializer::pre_init (
{
TAO_ENV_ARG_DEFN;
+ //
// Register all of the RT related services.
+ //
+
+ // Set the name of the Protocol_Hooks to be RT_Protocols_Hooks.
+ TAO_ORB_Core::set_protocols_hooks ("RT_Protocols_Hooks");
ACE_Service_Config::process_directive (ace_svc_desc_TAO_RT_Protocols_Hooks);
+
+ // Set the name of the stub factory to be RT_Stub_Factory.
+ TAO_ORB_Core::set_stub_factory ("RT_Stub_Factory");
ACE_Service_Config::process_directive (ace_svc_desc_TAO_RT_Stub_Factory);
+
+ // Set the name of the stub factory to be RT_Stub_Factory.
+ TAO_ORB_Core::set_endpoint_selector_factory ("RT_Endpoint_Selector_Factory");
ACE_Service_Config::process_directive (ace_svc_desc_RT_Endpoint_Selector_Factory);
+ // Set the name of the thread lane resources manager to be RT_Thread_Lane_Resources_Manager.
+ TAO_ORB_Core::set_thread_lane_resources_manager_factory ("RT_Thread_Lane_Resources_Manager_Factory");
+ ACE_Service_Config::process_directive (ace_svc_desc_TAO_RT_Thread_Lane_Resources_Manager_Factory);
+
// If the application resolves the root POA, make sure we load the RT POA.
TAO_ORB_Core::set_poa_factory (rt_poa_factory_name,
rt_poa_factory_directive);
-// @@ RTCORBA Subsetting: service gets automatically loaded now by using a static initializer.
-// ACE_Service_Config::process_directive (ace_svc_desc_TAO_RT_ORB_Loader);
-
- // Set the name of the Protocol_Hooks to be the RT_Protocols_Hooks.
- TAO_ORB_Core::set_protocols_hooks ("RT_Protocols_Hooks");
-
- // Set the name of the stub factory to be the RT_Stub_Factory.
- TAO_ORB_Core::set_stub_factory ("RT_Stub_Factory");
-
- // Set the name of the stub factory to be the RT_Stub_Factory.
- TAO_ORB_Core::set_endpoint_selector_factory ("RT_Endpoint_Selector_Factory");
-
// Sets the client_protocol policy.
TAO_RT_Protocols_Hooks::set_client_protocols_hook
(TAO_ClientProtocolPolicy::hook);
@@ -71,19 +81,29 @@ TAO_RT_ORBInitializer::pre_init (
TAO_RT_Protocols_Hooks::set_server_protocols_hook
(TAO_ServerProtocolPolicy::hook);
+ // Conversion.
+ long sched_policy = ACE_SCHED_OTHER;
+ if (this->sched_policy_ == THR_SCHED_FIFO)
+ sched_policy = ACE_SCHED_FIFO;
+ else if (this->sched_policy_ == THR_SCHED_RR)
+ sched_policy = ACE_SCHED_RR;
// Create the initial priority mapping instance.
TAO_Priority_Mapping *pm;
switch (this->priority_mapping_type_)
{
+ case TAO_PRIORITY_MAPPING_CONTINUOUS:
+ ACE_NEW (pm,
+ TAO_Continuous_Priority_Mapping (sched_policy));
+ break;
case TAO_PRIORITY_MAPPING_LINEAR:
ACE_NEW (pm,
- TAO_Linear_Priority_Mapping (this->sched_policy_));
+ TAO_Linear_Priority_Mapping (sched_policy));
break;
default:
case TAO_PRIORITY_MAPPING_DIRECT:
ACE_NEW (pm,
- TAO_Direct_Priority_Mapping (this->sched_policy_));
+ TAO_Direct_Priority_Mapping (sched_policy));
break;
}
@@ -137,7 +157,7 @@ TAO_RT_ORBInitializer::pre_init (
CORBA::COMPLETED_NO));
ACE_CHECK;
CORBA::Object_var safe_rt_orb = rt_orb;
-
+
info->register_initial_reference (TAO_OBJID_RTORB,
rt_orb,
ACE_TRY_ENV);
@@ -159,6 +179,9 @@ TAO_RT_ORBInitializer::pre_init (
current,
ACE_TRY_ENV);
ACE_CHECK;
+
+ tao_info->orb_core ()->orb_params ()->scope_policy (this->scope_policy_);
+ tao_info->orb_core ()->orb_params ()->sched_policy (this->sched_policy_);
}
void
@@ -209,4 +232,3 @@ TAO_RT_ORBInitializer::register_policy_factories (
ACE_TRY_ENV);
ACE_CHECK;
}
-
diff --git a/TAO/tao/RTCORBA/RT_ORBInitializer.h b/TAO/tao/RTCORBA/RT_ORBInitializer.h
index 88ec7c6fdf1..d119a26e52b 100644
--- a/TAO/tao/RTCORBA/RT_ORBInitializer.h
+++ b/TAO/tao/RTCORBA/RT_ORBInitializer.h
@@ -43,14 +43,16 @@ class TAO_RTCORBA_Export TAO_RT_ORBInitializer :
{
public:
// Priority mapping types
- enum
+ enum
{
+ TAO_PRIORITY_MAPPING_CONTINUOUS,
TAO_PRIORITY_MAPPING_LINEAR,
TAO_PRIORITY_MAPPING_DIRECT
};
TAO_RT_ORBInitializer (int priority_mapping_type,
- int sched_policy);
+ long sched_policy,
+ long scope_policy);
virtual void pre_init (PortableInterceptor::ORBInitInfo_ptr info
TAO_ENV_ARG_DECL_WITH_DEFAULTS)
@@ -74,11 +76,14 @@ private:
/// a single instance between all ORBs.
TAO_RT_PolicyFactory policy_factory_;
- /// Initial priority mapping type.
+ /// Priority mapping type.
int priority_mapping_type_;
- /// Initial scheduling policy.
- int sched_policy_;
+ /// Scheduling policy.
+ long sched_policy_;
+
+ /// Scope policy.
+ long scope_policy_;
};
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
diff --git a/TAO/tao/RTCORBA/RT_ORB_Loader.cpp b/TAO/tao/RTCORBA/RT_ORB_Loader.cpp
index 087919e5c70..e32fd36fd83 100644
--- a/TAO/tao/RTCORBA/RT_ORB_Loader.cpp
+++ b/TAO/tao/RTCORBA/RT_ORB_Loader.cpp
@@ -9,15 +9,6 @@
ACE_RCSID (TAO, RT_ORB_Loader, "$Id$")
-int
-TAO_RT_ORB_Loader::Initializer (void)
-{
- ACE_Service_Config::static_svcs ()->
- insert (&ace_svc_desc_TAO_RT_ORB_Loader);
-
- return 0;
-}
-
TAO_RT_ORB_Loader::TAO_RT_ORB_Loader (void)
{
}
@@ -26,16 +17,6 @@ TAO_RT_ORB_Loader::~TAO_RT_ORB_Loader (void)
{
}
-CORBA::Object_ptr
-TAO_RT_ORB_Loader::create_object (CORBA::ORB_ptr,
- int,
- char *[],
- CORBA::Environment &)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- return CORBA::Object::_nil ();
-}
-
int
TAO_RT_ORB_Loader::init (int argc,
char* argv[])
@@ -52,7 +33,8 @@ TAO_RT_ORB_Loader::init (int argc,
// Set defaults.
int priority_mapping_type = TAO_RT_ORBInitializer::TAO_PRIORITY_MAPPING_DIRECT;
- int sched_policy = ACE_SCHED_OTHER;
+ long sched_policy = THR_SCHED_DEFAULT;
+ long scope_policy = THR_SCOPE_PROCESS;
int curarg = 0;
// Parse any service configurator parameters.
@@ -66,7 +48,10 @@ TAO_RT_ORB_Loader::init (int argc,
char *name = argv[curarg];
if (ACE_OS::strcasecmp (name,
- "linear") == 0)
+ "continuous") == 0)
+ priority_mapping_type = TAO_RT_ORBInitializer::TAO_PRIORITY_MAPPING_CONTINUOUS;
+ else if (ACE_OS::strcasecmp (name,
+ "linear") == 0)
priority_mapping_type = TAO_RT_ORBInitializer::TAO_PRIORITY_MAPPING_LINEAR;
else if (ACE_OS::strcasecmp (name,
"direct") == 0)
@@ -87,19 +72,39 @@ TAO_RT_ORB_Loader::init (int argc,
if (ACE_OS::strcasecmp (name,
"SCHED_OTHER") == 0)
- sched_policy = ACE_SCHED_OTHER;
+ sched_policy = THR_SCHED_DEFAULT;
else if (ACE_OS::strcasecmp (name,
"SCHED_FIFO") == 0)
- sched_policy = ACE_SCHED_FIFO;
+ sched_policy = THR_SCHED_FIFO;
else if (ACE_OS::strcasecmp (name,
"SCHED_RR") == 0)
- sched_policy = ACE_SCHED_RR;
+ sched_policy = THR_SCHED_RR;
else
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("RT_ORB_Loader - unknown argument")
ACE_TEXT (" <%s> for -ORBSchedPolicy\n"), name));
}
}
+ else if (ACE_OS::strcasecmp (argv[curarg],
+ "-ORBScopePolicy") == 0)
+ {
+ curarg++;
+ if (curarg < argc)
+ {
+ char *name = argv[curarg];
+
+ if (ACE_OS::strcasecmp (name,
+ "SYSTEM") == 0)
+ scope_policy = THR_SCOPE_SYSTEM;
+ else if (ACE_OS::strcasecmp (name,
+ "PROCESS") == 0)
+ scope_policy = THR_SCOPE_PROCESS;
+ else
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("RT_ORB_Loader - unknown argument")
+ ACE_TEXT (" <%s> for -ORBScopePolicy\n"), name));
+ }
+ }
else
{
if (TAO_debug_level > 0)
@@ -121,7 +126,8 @@ TAO_RT_ORB_Loader::init (int argc,
/// Register the RTCORBA ORBInitializer.
ACE_NEW_THROW_EX (temp_orb_initializer,
TAO_RT_ORBInitializer (priority_mapping_type,
- sched_policy),
+ sched_policy,
+ scope_policy),
CORBA::NO_MEMORY (
CORBA_SystemException::_tao_minor_code (
TAO_DEFAULT_MINOR_CODE,
@@ -145,10 +151,8 @@ TAO_RT_ORB_Loader::init (int argc,
return 0;
}
-
/////////////////////////////////////////////////////////////////////
-
ACE_FACTORY_DEFINE (TAO, TAO_RT_ORB_Loader)
ACE_STATIC_SVC_DEFINE (TAO_RT_ORB_Loader,
ACE_TEXT ("RT_ORB_Loader"),
@@ -157,4 +161,3 @@ ACE_STATIC_SVC_DEFINE (TAO_RT_ORB_Loader,
ACE_Service_Type::DELETE_THIS
| ACE_Service_Type::DELETE_OBJ,
0)
-
diff --git a/TAO/tao/RTCORBA/RT_ORB_Loader.h b/TAO/tao/RTCORBA/RT_ORB_Loader.h
index 6312177b727..8c61838982b 100644
--- a/TAO/tao/RTCORBA/RT_ORB_Loader.h
+++ b/TAO/tao/RTCORBA/RT_ORB_Loader.h
@@ -19,7 +19,7 @@
#include "rtcorba_export.h"
-#include "tao/Object_Loader.h"
+#include "ace/Service_Object.h"
#include "ace/Service_Config.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
@@ -28,7 +28,7 @@
class TAO_ORB_Core;
-class TAO_RTCORBA_Export TAO_RT_ORB_Loader : public TAO_Object_Loader
+class TAO_RTCORBA_Export TAO_RT_ORB_Loader : public ACE_Service_Object
{
public:
/// Constructor.
@@ -40,36 +40,10 @@ public:
/// Initialize the RT ORB loader hooks.
virtual int init (int argc,
char* []);
-
- /// Create the object (unused)
- virtual CORBA::Object_ptr create_object (CORBA::ORB_ptr orb,
- int argc,
- char *argv [],
- CORBA::Environment &)
- ACE_THROW_SPEC ((CORBA::SystemException));
-
- /// Used to force the initialization of the ORB code.
- static int Initializer (void);
-
};
ACE_STATIC_SVC_DECLARE_EXPORT (TAO_RTCORBA, TAO_RT_ORB_Loader)
ACE_FACTORY_DECLARE (TAO_RTCORBA, TAO_RT_ORB_Loader)
-
-// #if defined(ACE_HAS_BROKEN_STATIC_CONSTRUCTORS)
-
-// typedef int (*TAO_Module_Initializer) (void);
-
-// static TAO_Module_Initializer
-// TAO_Requires_RTCORBA_Initializer = &TAO_RT_ORB_Loader::Initializer;
-
-// #else
-
-// static int
-// TAO_Requires_RTCORBA_Initializer = TAO_RT_ORB_Loader::Initializer ();
-
-// #endif /* ACE_HAS_BROKEN_STATIC_CONSTRUCTORS */
-
#include "ace/post.h"
#endif /* TAO_RT_ORB_LOADER_H */
diff --git a/TAO/tao/RTCORBA/RT_PolicyFactory.cpp b/TAO/tao/RTCORBA/RT_PolicyFactory.cpp
index 39306126890..87420a3953a 100644
--- a/TAO/tao/RTCORBA/RT_PolicyFactory.cpp
+++ b/TAO/tao/RTCORBA/RT_PolicyFactory.cpp
@@ -66,4 +66,3 @@ TAO_RT_PolicyFactory::create_policy (
ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_TYPE),
CORBA::Policy::_nil ());
}
-
diff --git a/TAO/tao/RTCORBA/RT_Policy_i.h b/TAO/tao/RTCORBA/RT_Policy_i.h
index 85fe4852b35..412ac3db2ec 100644
--- a/TAO/tao/RTCORBA/RT_Policy_i.h
+++ b/TAO/tao/RTCORBA/RT_Policy_i.h
@@ -20,7 +20,10 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "RTCORBA.h"
+#define TAO_RTCORBA_SAFE_INCLUDE
+#include "RTCORBAC.h"
+#undef TAO_RTCORBA_SAFE_INCLUDE
+
#include "tao/LocalObject.h"
#include "ace/SString.h"
diff --git a/TAO/tao/RTCORBA/RT_Protocols_Hooks.cpp b/TAO/tao/RTCORBA/RT_Protocols_Hooks.cpp
index 01fd723b174..5519c6003d8 100644
--- a/TAO/tao/RTCORBA/RT_Protocols_Hooks.cpp
+++ b/TAO/tao/RTCORBA/RT_Protocols_Hooks.cpp
@@ -6,6 +6,8 @@
#include "tao/Invocation.h"
#include "tao/Stub.h"
#include "tao/MProfile.h"
+#include "tao/Acceptor_Registry.h"
+#include "tao/Thread_Lane_Resources.h"
#include "Priority_Mapping_Manager.h"
#include "RT_Stub.h"
@@ -36,9 +38,8 @@ TAO_RT_Protocols_Hooks::init_hooks (TAO_ORB_Core *orb_core,
// Save a reference to the priority mapping manager.
CORBA::Object_var obj =
- orb_core->object_ref_table ().resolve_initial_references (
- TAO_OBJID_PRIORITYMAPPINGMANAGER,
- ACE_TRY_ENV);
+ orb_core->object_ref_table ().resolve_initial_references (TAO_OBJID_PRIORITYMAPPINGMANAGER,
+ ACE_TRY_ENV);
ACE_CHECK;
this->mapping_manager_ =
@@ -48,11 +49,10 @@ TAO_RT_Protocols_Hooks::init_hooks (TAO_ORB_Core *orb_core,
}
int
-TAO_RT_Protocols_Hooks::call_client_protocols_hook (
- int &send_buffer_size,
- int &recv_buffer_size,
- int &no_delay,
- const char *protocol_type)
+TAO_RT_Protocols_Hooks::call_client_protocols_hook (int &send_buffer_size,
+ int &recv_buffer_size,
+ int &no_delay,
+ const char *protocol_type)
{
if (TAO_RT_Protocols_Hooks::client_protocols_hook_ == 0)
return -1;
@@ -74,11 +74,10 @@ TAO_RT_Protocols_Hooks::set_client_protocols_hook (Client_Protocols_Hook hook)
}
int
-TAO_RT_Protocols_Hooks::call_server_protocols_hook (
- int &send_buffer_size,
- int &recv_buffer_size,
- int &no_delay,
- const char *protocol_type)
+TAO_RT_Protocols_Hooks::call_server_protocols_hook (int &send_buffer_size,
+ int &recv_buffer_size,
+ int &no_delay,
+ const char *protocol_type)
{
if (TAO_RT_Protocols_Hooks::server_protocols_hook_ == 0)
return -1;
@@ -180,9 +179,9 @@ TAO_RT_Protocols_Hooks::add_rt_service_context_hook (TAO_Service_Context &servic
void
TAO_RT_Protocols_Hooks::get_selector_hook (
- CORBA::Policy *model_policy,
- CORBA::Boolean &is_client_propagated,
- CORBA::Short &server_priority)
+ CORBA::Policy *model_policy,
+ CORBA::Boolean &is_client_propagated,
+ CORBA::Short &server_priority)
{
RTCORBA::PriorityModelPolicy_var model_policy_ptr =
@@ -204,11 +203,11 @@ TAO_RT_Protocols_Hooks::get_selector_hook (
void
TAO_RT_Protocols_Hooks::get_selector_bands_policy_hook (
- CORBA::Policy *bands_policy,
- CORBA::Short &min_priority,
- CORBA::Short &max_priority,
- CORBA::Short &p,
- int &in_range)
+ CORBA::Policy *bands_policy,
+ CORBA::Short &min_priority,
+ CORBA::Short &max_priority,
+ CORBA::Short &p,
+ int &in_range)
{
RTCORBA::PriorityBandedConnectionPolicy_var bands_policy_ptr =
RTCORBA::PriorityBandedConnectionPolicy::_narrow (bands_policy);
@@ -392,6 +391,59 @@ TAO_RT_Protocols_Hooks::set_default_policies (CORBA::Environment &ACE_TRY_ENV)
return 0;
}
+int
+TAO_RT_Protocols_Hooks::set_default_server_protocol_policy (TAO_Acceptor_Registry &acceptor_registry,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ RTCORBA::ProtocolList protocols;
+
+ TAO_AcceptorSetIterator end =
+ acceptor_registry.end ();
+
+ for (TAO_AcceptorSetIterator acceptor =
+ acceptor_registry.begin ();
+ acceptor != end;
+ ++acceptor)
+ {
+ if (*acceptor == 0)
+ continue;
+
+ CORBA::ULong current_length =
+ protocols.length ();
+
+ protocols.length (current_length + 1);
+
+ protocols[current_length].protocol_type =
+ (*acceptor)->tag ();
+
+ protocols[current_length].orb_protocol_properties =
+ RTCORBA::ProtocolProperties::_nil ();
+
+ // @@ Later, we will likely migrate to using RTCORBA protocol
+ // policies for configuration of protocols in nonRT use cases.
+ // Then, the code below will change to each protocol factory
+ // being responsible for creation of its own default protocol
+ // properties.
+ protocols[current_length].transport_protocol_properties =
+ TAO_Protocol_Properties_Factory::create_transport_protocol_property ((*acceptor)->tag ());
+ }
+
+ // Set ServerProtocolPolicy.
+ TAO_ServerProtocolPolicy *server_protocol_policy = 0;
+ ACE_NEW_RETURN (server_protocol_policy,
+ TAO_ServerProtocolPolicy (protocols),
+ -1);
+
+ RTCORBA::ServerProtocolPolicy_var safe_server_protocol_policy =
+ server_protocol_policy;
+
+ this->orb_core_->get_default_policies ()->set_policy (server_protocol_policy,
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ return 0;
+}
+
ACE_STATIC_SVC_DEFINE (TAO_RT_Protocols_Hooks,
ACE_TEXT ("RT_Protocols_Hooks"),
ACE_SVC_OBJ_T,
diff --git a/TAO/tao/RTCORBA/RT_Protocols_Hooks.h b/TAO/tao/RTCORBA/RT_Protocols_Hooks.h
index 45515b5813e..7eb98ddb5ad 100644
--- a/TAO/tao/RTCORBA/RT_Protocols_Hooks.h
+++ b/TAO/tao/RTCORBA/RT_Protocols_Hooks.h
@@ -136,10 +136,12 @@ public:
//@}
/// 1. Sets ORB-level policy defaults for this ORB. Currently sets
- /// default RTCORBA policies: ServerProtocolPolicy and
- /// ClientProtocolPolicy.
+ /// default RTCORBA policies: ClientProtocolPolicy.
virtual int set_default_policies (CORBA::Environment &ACE_TRY_ENV);
+ int set_default_server_protocol_policy (TAO_Acceptor_Registry &acceptor_registry,
+ CORBA::Environment &ACE_TRY_ENV);
+
protected:
TAO_ORB_Core *orb_core_;
@@ -153,7 +155,6 @@ protected:
ACE_STATIC_SVC_DECLARE_EXPORT (TAO_RTCORBA, TAO_RT_Protocols_Hooks)
ACE_FACTORY_DECLARE (TAO_RTCORBA, TAO_RT_Protocols_Hooks)
-ACE_STATIC_SVC_REQUIRE(TAO_RT_Protocols_Hooks)
#include "ace/post.h"
#endif /* TAO_RT_PROTOCOLS_HOOKS_H */
diff --git a/TAO/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.cpp b/TAO/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.cpp
new file mode 100644
index 00000000000..0c0b75c99cd
--- /dev/null
+++ b/TAO/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.cpp
@@ -0,0 +1,134 @@
+// $Id$
+
+#include "tao/RTCORBA/RT_Thread_Lane_Resources_Manager.h"
+
+ACE_RCSID(RTCORBA, RT_Thread_Lane_Resources_Manager, "$Id$")
+
+#include "tao/ORB_Core.h"
+#include "tao/Acceptor_Registry.h"
+#include "tao/Thread_Lane_Resources.h"
+#include "tao/RTCORBA/Thread_Pool.h"
+#include "tao/Leader_Follower.h"
+
+#if !defined (__ACE_INLINE__)
+# include "tao/RTCORBA/RT_Thread_Lane_Resources_Manager.i"
+#endif /* ! __ACE_INLINE__ */
+
+TAO_RT_Thread_Lane_Resources_Manager::TAO_RT_Thread_Lane_Resources_Manager (TAO_ORB_Core &orb_core)
+ : TAO_Thread_Lane_Resources_Manager (orb_core),
+ default_lane_resources_ (0),
+ tp_manager_ (0)
+{
+ // Create the default resources.
+ ACE_NEW (this->default_lane_resources_,
+ TAO_Thread_Lane_Resources (orb_core));
+
+ // Create the thread-pool manager.
+ ACE_NEW (this->tp_manager_,
+ TAO_Thread_Pool_Manager (orb_core));
+
+}
+
+TAO_RT_Thread_Lane_Resources_Manager::~TAO_RT_Thread_Lane_Resources_Manager (void)
+{
+ // Delete the default resources.
+ delete this->default_lane_resources_;
+
+ // Delete the thread-pool manager.
+ delete this->tp_manager_;
+}
+
+int
+TAO_RT_Thread_Lane_Resources_Manager::open_default_resources (CORBA_Environment &ACE_TRY_ENV)
+{
+ int result =
+ this->default_lane_resources_->open_acceptor_registry (0,
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ return result;
+}
+
+void
+TAO_RT_Thread_Lane_Resources_Manager::finalize (void)
+{
+ // Finalize default resources.
+ this->default_lane_resources_->finalize ();
+
+ // Finalize resources managed by the thread-pool manager.
+ this->tp_manager_->finalize ();
+}
+
+void
+TAO_RT_Thread_Lane_Resources_Manager::shutdown_reactor (void)
+{
+ // Shutdown default reactors.
+ this->default_lane_resources_->shutdown_reactor ();
+
+ // Shutdown reactors managed by the thread-pool manager.
+ this->tp_manager_->shutdown_reactor ();
+}
+
+int
+TAO_RT_Thread_Lane_Resources_Manager::is_collocated (const TAO_MProfile &mprofile)
+{
+ int result =
+ this->default_lane_resources_->is_collocated (mprofile);
+
+ if (result)
+ return result;
+
+ return this->tp_manager_->is_collocated (mprofile);
+}
+
+TAO_Thread_Lane_Resources &
+TAO_RT_Thread_Lane_Resources_Manager::lane_resources (void)
+{
+ // Get the ORB_Core's TSS resources.
+ TAO_ORB_Core_TSS_Resources &tss =
+ *this->orb_core_->get_tss_resources ();
+
+ // Get the lane for this thread.
+ TAO_Thread_Lane *lane =
+ (TAO_Thread_Lane *) tss.lane_;
+
+ // If we have a valid lane, use that lane's resources.
+ if (lane)
+ return lane->resources ();
+ else
+ // Otherwise, return the default resources.
+ return *this->default_lane_resources_;
+}
+
+TAO_Thread_Lane_Resources &
+TAO_RT_Thread_Lane_Resources_Manager::default_lane_resources (void)
+{
+ return *this->default_lane_resources_;
+}
+
+TAO_Thread_Pool_Manager &
+TAO_RT_Thread_Lane_Resources_Manager::tp_manager (void)
+{
+ return *this->tp_manager_;
+}
+
+TAO_Thread_Lane_Resources_Manager *
+TAO_RT_Thread_Lane_Resources_Manager_Factory::create_thread_lane_resources_manager (TAO_ORB_Core &core)
+{
+ TAO_Thread_Lane_Resources_Manager *manager = 0;
+
+ /// Create the RT Thread Lane Resources Manager.
+ ACE_NEW_RETURN (manager,
+ TAO_RT_Thread_Lane_Resources_Manager (core),
+ 0);
+
+ return manager;
+}
+
+ACE_STATIC_SVC_DEFINE (TAO_RT_Thread_Lane_Resources_Manager_Factory,
+ ACE_TEXT ("RT_Thread_Lane_Resources_Manager_Factory"),
+ ACE_SVC_OBJ_T,
+ &ACE_SVC_NAME (TAO_RT_Thread_Lane_Resources_Manager_Factory),
+ ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
+ 0)
+ACE_FACTORY_DEFINE (TAO, TAO_RT_Thread_Lane_Resources_Manager_Factory)
diff --git a/TAO/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.h b/TAO/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.h
new file mode 100644
index 00000000000..eff190fd84a
--- /dev/null
+++ b/TAO/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.h
@@ -0,0 +1,105 @@
+//=============================================================================
+/**
+ * @file RT_Thread_Lane_Resources_Manager.h
+ *
+ * $Id$
+ *
+ * @author Irfan Pyarali
+ */
+// ===================================================================
+
+#ifndef TAO_RT_THREAD_LANE_RESOURCES_MANAGER_H
+#define TAO_RT_THREAD_LANE_RESOURCES_MANAGER_H
+
+#include "ace/pre.h"
+#include "tao/orbconf.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/RTCORBA/rtcorba_export.h"
+#include "tao/Thread_Lane_Resources_Manager.h"
+#include "ace/Service_Config.h"
+
+class TAO_Thread_Pool_Manager;
+
+/**
+ * @class TAO_RT_Thread_Lane_Resources_Manager
+ *
+ * @brief Manager for thread lane resources.
+ *
+ * \nosubgrouping
+ *
+ **/
+class TAO_RTCORBA_Export TAO_RT_Thread_Lane_Resources_Manager :
+ public TAO_Thread_Lane_Resources_Manager
+{
+public:
+
+ /// Constructor.
+ TAO_RT_Thread_Lane_Resources_Manager (TAO_ORB_Core &orb_core);
+
+ /// Destructor.
+ ~TAO_RT_Thread_Lane_Resources_Manager (void);
+
+ /// Finalize resources.
+ void finalize (void);
+
+ /// Open default resources.
+ int open_default_resources (CORBA_Environment &ACE_TRY_ENV);
+
+ /// Shutdown reactor.
+ void shutdown_reactor (void);
+
+ // Does <mprofile> belong to us?
+ int is_collocated (const TAO_MProfile &mprofile);
+
+ /// @name Accessors
+ // @{
+
+ TAO_Thread_Lane_Resources &lane_resources (void);
+
+ TAO_Thread_Lane_Resources &default_lane_resources (void);
+
+ TAO_Thread_Pool_Manager &tp_manager (void);
+
+ // @}
+
+protected:
+
+ /// Default lane resources.
+ TAO_Thread_Lane_Resources *default_lane_resources_;
+
+ /// Thread Pool Manager.
+ TAO_Thread_Pool_Manager *tp_manager_;
+};
+
+/**
+ * @class TAO_RT_Thread_Lane_Resources_Manager_Factory
+ *
+ * @brief This class is a factory for managers of thread resources.
+ *
+ * \nosubgrouping
+ *
+ **/
+class TAO_RTCORBA_Export TAO_RT_Thread_Lane_Resources_Manager_Factory
+ : public TAO_Thread_Lane_Resources_Manager_Factory
+{
+public:
+
+ /// Factory method.
+ TAO_Thread_Lane_Resources_Manager *create_thread_lane_resources_manager (TAO_ORB_Core &core);
+
+};
+
+ACE_STATIC_SVC_DECLARE_EXPORT (TAO_RTCORBA, TAO_RT_Thread_Lane_Resources_Manager_Factory)
+ACE_FACTORY_DECLARE (TAO_RTCORBA, TAO_RT_Thread_Lane_Resources_Manager_Factory)
+
+#if defined (__ACE_INLINE__)
+# include "tao/RTCORBA/RT_Thread_Lane_Resources_Manager.i"
+#endif /* __ACE_INLINE__ */
+
+#include "ace/post.h"
+
+#endif /* TAO_RT_THREAD_LANE_RESOURCES_MANAGER_H */
diff --git a/TAO/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.i b/TAO/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.i
new file mode 100644
index 00000000000..cfa1da318d3
--- /dev/null
+++ b/TAO/tao/RTCORBA/RT_Thread_Lane_Resources_Manager.i
@@ -0,0 +1 @@
+// $Id$
diff --git a/TAO/tao/RTCORBA/TAO_RTCORBA.dsp b/TAO/tao/RTCORBA/TAO_RTCORBA.dsp
index 212051b0044..9d3671c9980 100644
--- a/TAO/tao/RTCORBA/TAO_RTCORBA.dsp
+++ b/TAO/tao/RTCORBA/TAO_RTCORBA.dsp
@@ -156,15 +156,15 @@ LINK32=link.exe
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
-SOURCE=.\Direct_Priority_Mapping.cpp
+SOURCE=.\Continuous_Priority_Mapping.cpp
# End Source File
# Begin Source File
-SOURCE=.\Linear_Priority_Mapping.cpp
+SOURCE=.\Direct_Priority_Mapping.cpp
# End Source File
# Begin Source File
-SOURCE=.\Pool_Per_Endpoint.cpp
+SOURCE=.\Linear_Priority_Mapping.cpp
# End Source File
# Begin Source File
@@ -242,21 +242,25 @@ SOURCE=.\RTCORBAC.cpp
SOURCE=.\Thread_Pool.cpp
# End Source File
+# Begin Source File
+
+SOURCE=.\RT_Thread_Lane_Resources_Manager.cpp
+# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
-SOURCE=.\Direct_Priority_Mapping.h
+SOURCE=.\Continuous_Priority_Mapping.h
# End Source File
# Begin Source File
-SOURCE=.\Linear_Priority_Mapping.h
+SOURCE=.\Direct_Priority_Mapping.h
# End Source File
# Begin Source File
-SOURCE=.\Pool_Per_Endpoint.h
+SOURCE=.\Linear_Priority_Mapping.h
# End Source File
# Begin Source File
@@ -338,21 +342,25 @@ SOURCE=.\RTCORBAC.h
SOURCE=.\Thread_Pool.h
# End Source File
+# Begin Source File
+
+SOURCE=.\RT_Thread_Lane_Resources_Manager.h
+# End Source File
# End Group
# Begin Group "Inline Files"
# PROP Default_Filter ".i"
# Begin Source File
-SOURCE=.\Direct_Priority_Mapping.i
+SOURCE=.\Continuous_Priority_Mapping.i
# End Source File
# Begin Source File
-SOURCE=.\Linear_Priority_Mapping.i
+SOURCE=.\Direct_Priority_Mapping.i
# End Source File
# Begin Source File
-SOURCE=.\Pool_Per_Endpoint.i
+SOURCE=.\Linear_Priority_Mapping.i
# End Source File
# Begin Source File
@@ -398,6 +406,10 @@ SOURCE=.\RTCORBAC.i
SOURCE=.\Thread_Pool.i
# End Source File
+# Begin Source File
+
+SOURCE=.\RT_Thread_Lane_Resources_Manager.i
+# End Source File
# End Group
# Begin Group "Template Files"
diff --git a/TAO/tao/RTCORBA/TAO_RTCORBA_Static.dsp b/TAO/tao/RTCORBA/TAO_RTCORBA_Static.dsp
index ad1c282494f..49b7dd78a44 100644
--- a/TAO/tao/RTCORBA/TAO_RTCORBA_Static.dsp
+++ b/TAO/tao/RTCORBA/TAO_RTCORBA_Static.dsp
@@ -95,6 +95,10 @@ LIB32=link.exe -lib
# PROP Default_Filter "i,inl"
# Begin Source File
+SOURCE=.\Continuous_Priority_Mapping.i
+# End Source File
+# Begin Source File
+
SOURCE=.\Direct_Priority_Mapping.i
# End Source File
# Begin Source File
@@ -103,7 +107,7 @@ SOURCE=.\Linear_Priority_Mapping.i
# End Source File
# Begin Source File
-SOURCE=.\Pool_Per_Endpoint.i
+SOURCE=.\RT_Thread_Lane_Resources_Manager.i
# End Source File
# Begin Source File
@@ -155,6 +159,10 @@ SOURCE=.\Thread_Pool.i
# PROP Default_Filter "h"
# Begin Source File
+SOURCE=.\Continuous_Priority_Mapping.h
+# End Source File
+# Begin Source File
+
SOURCE=.\Direct_Priority_Mapping.h
# End Source File
# Begin Source File
@@ -163,7 +171,7 @@ SOURCE=.\Linear_Priority_Mapping.h
# End Source File
# Begin Source File
-SOURCE=.\Pool_Per_Endpoint.h
+SOURCE=.\RT_Thread_Lane_Resources_Manager.h
# End Source File
# Begin Source File
@@ -251,6 +259,10 @@ SOURCE=.\Thread_Pool.h
# PROP Default_Filter "cpp"
# Begin Source File
+SOURCE=.\Continuous_Priority_Mapping.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\Direct_Priority_Mapping.cpp
# End Source File
# Begin Source File
@@ -259,7 +271,7 @@ SOURCE=.\Linear_Priority_Mapping.cpp
# End Source File
# Begin Source File
-SOURCE=.\Pool_Per_Endpoint.cpp
+SOURCE=.\RT_Thread_Lane_Resources_Manager.cpp
# End Source File
# Begin Source File
diff --git a/TAO/tao/RTCORBA/Thread_Pool.cpp b/TAO/tao/RTCORBA/Thread_Pool.cpp
index be3f4bf7f60..aba3f630f2d 100644
--- a/TAO/tao/RTCORBA/Thread_Pool.cpp
+++ b/TAO/tao/RTCORBA/Thread_Pool.cpp
@@ -7,14 +7,71 @@ ACE_RCSID(tao, Thread_Pool, "$Id$")
#include "tao/Exception.h"
#include "ace/Auto_Ptr.h"
#include "tao/ORB_Core.h"
+#include "tao/Acceptor_Registry.h"
+#include "tao/Transport_Cache_Manager.h"
+#include "tao/debug.h"
+#include "tao/RTCORBA/Priority_Mapping_Manager.h"
+#include "tao/Leader_Follower.h"
#if !defined (__ACE_INLINE__)
# include "Thread_Pool.i"
#endif /* ! __ACE_INLINE__ */
-TAO_Thread_Pool_Threads::TAO_Thread_Pool_Threads (TAO_Thread_Lane &lane,
- ACE_Thread_Manager &tm)
- : ACE_Task_Base (&tm),
+TAO_RT_New_Leader_Generator::TAO_RT_New_Leader_Generator (TAO_Thread_Lane &lane)
+ : lane_ (lane)
+{
+}
+
+void
+TAO_RT_New_Leader_Generator::no_leaders_available (void)
+{
+ // Note that we are checking this condition below without the lock
+ // held. The value of <static_threads> and <dynamic_threads> does
+ // not change, but <current_threads> increases when new dynamic
+ // threads are created. Even if we catch <current_threads> in an
+ // inconsistent state, we will double check later with the lock
+ // held. Therefore, this check should not cause any big problems.
+ if (this->lane_.current_threads () ==
+ this->lane_.static_threads () +
+ this->lane_.dynamic_threads ())
+ return;
+
+ TAO_Thread_Pool_Manager &manager =
+ this->lane_.pool ().manager ();
+
+ ACE_GUARD (ACE_SYNCH_MUTEX,
+ mon,
+ manager.lock ());
+
+ if (this->lane_.current_threads () <
+ (this->lane_.static_threads () +
+ this->lane_.dynamic_threads ()) &&
+ !manager.orb_core ().has_shutdown ())
+ {
+ if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("TAO Process %P Pool %d Lane %d Thread %t\n")
+ ACE_TEXT ("Current number of threads = %d; static threads = %d; dynamic threads = %d\n")
+ ACE_TEXT ("No leaders available; creating new leader!\n"),
+ this->lane_.pool ().id (),
+ this->lane_.id (),
+ this->lane_.current_threads (),
+ this->lane_.static_threads (),
+ this->lane_.dynamic_threads ()));
+
+ int result =
+ this->lane_.create_dynamic_threads (1);
+
+ if (result != 0)
+ ACE_ERROR ((LM_ERROR,
+ "Pool %d Lane %d Thread %t: cannot create dynamic thread\n",
+ this->lane_.pool ().id (),
+ this->lane_.id ()));
+ }
+}
+
+TAO_Thread_Pool_Threads::TAO_Thread_Pool_Threads (TAO_Thread_Lane &lane)
+ : ACE_Task_Base (lane.pool ().manager ().orb_core ().thr_mgr ()),
lane_ (lane)
{
}
@@ -28,43 +85,167 @@ TAO_Thread_Pool_Threads::lane (void) const
int
TAO_Thread_Pool_Threads::svc (void)
{
- CORBA::ORB_var orb =
- this->lane ().thread_pool ().orb ();
+ TAO_ORB_Core &orb_core =
+ this->lane ().pool ().manager ().orb_core ();
+
+ if (orb_core.has_shutdown ())
+ return 0;
+
+ // Set TSS resources for this thread.
+ TAO_Thread_Pool_Threads::set_tss_resources (orb_core,
+ this->lane_);
- ACE_DECLARE_NEW_CORBA_ENV;
- ACE_TRY
+ CORBA::ORB_ptr orb =
+ orb_core.orb ();
+
+ ACE_TRY_NEW_ENV
{
+ // Run the ORB.
orb->run (ACE_TRY_ENV);
ACE_TRY_CHECK;
}
ACE_CATCHANY
{
+ // No point propagating this exception. Print it out.
ACE_ERROR ((LM_ERROR,
"orb->run() raised exception for thread %t\n"));
+
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
+ "");
}
ACE_ENDTRY;
return 0;
}
-TAO_Thread_Lane::TAO_Thread_Lane (TAO_Thread_Pool &thread_pool,
+void
+TAO_Thread_Pool_Threads::set_tss_resources (TAO_ORB_Core &orb_core,
+ TAO_Thread_Lane &thread_lane)
+{
+ /// Get the ORB_Core's TSS resources.
+ TAO_ORB_Core_TSS_Resources &tss =
+ *orb_core.get_tss_resources ();
+
+ /// Set the lane attribute in TSS.
+ tss.lane_ = &thread_lane;
+}
+
+TAO_Thread_Lane::TAO_Thread_Lane (TAO_Thread_Pool &pool,
CORBA::ULong id,
CORBA::Short lane_priority,
CORBA::ULong static_threads,
- CORBA::ULong dynamic_threads)
- : thread_pool_ (thread_pool),
+ CORBA::ULong dynamic_threads,
+ CORBA::Environment &)
+ : pool_ (pool),
id_ (id),
lane_priority_ (lane_priority),
static_threads_ (static_threads),
dynamic_threads_ (dynamic_threads),
- threads_ (*this,
- thread_pool_.thread_manager_)
+ current_threads_ (0),
+ threads_ (*this),
+ new_thread_generator_ (*this),
+ resources_ (pool.manager ().orb_core (),
+ &new_thread_generator_),
+ native_priority_ (TAO_INVALID_PRIORITY)
+{
+}
+
+void
+TAO_Thread_Lane::validate_and_map_priority (CORBA::Environment &ACE_TRY_ENV)
+{
+ // Check that the priority is in bounds.
+ if (this->lane_priority_ < RTCORBA::minPriority ||
+ this->lane_priority_ > RTCORBA::maxPriority)
+ ACE_THROW (CORBA::BAD_PARAM ());
+
+ CORBA::ORB_ptr orb =
+ this->pool_.manager ().orb_core ().orb ();
+
+ // Get the priority mapping manager.
+ CORBA::Object_var obj =
+ orb->resolve_initial_references (TAO_OBJID_PRIORITYMAPPINGMANAGER,
+ ACE_TRY_ENV);
+ ACE_CHECK;
+
+ TAO_Priority_Mapping_Manager_var mapping_manager =
+ TAO_Priority_Mapping_Manager::_narrow (obj.in (),
+ ACE_TRY_ENV);
+ ACE_CHECK;
+
+ RTCORBA::PriorityMapping *pm =
+ mapping_manager.in ()->mapping ();
+
+ // Map CORBA priority to native priority.
+ CORBA::Boolean result =
+ pm->to_native (this->lane_priority_,
+ this->native_priority_);
+
+ if (!result)
+ ACE_THROW (CORBA::DATA_CONVERSION ());
+
+ if (TAO_debug_level > 3)
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("TAO (%P|%t) - creating thread at ")
+ ACE_TEXT ("(corba:native) priority %d:%d\n"),
+ this->lane_priority_,
+ this->native_priority_));
+}
+
+void
+TAO_Thread_Lane::open (CORBA::Environment &ACE_TRY_ENV)
+{
+ // Validate and map priority.
+ this->validate_and_map_priority (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ // Open the acceptor registry.
+ int result = 0;
+ result =
+ this->resources_.open_acceptor_registry (1,
+ ACE_TRY_ENV);
+ ACE_CHECK;
+
+ if (result == -1)
+ ACE_THROW (CORBA::INTERNAL (
+ CORBA_SystemException::_tao_minor_code (
+ TAO_ACCEPTOR_REGISTRY_OPEN_LOCATION_CODE,
+ 0),
+ CORBA::COMPLETED_NO));
+}
+
+TAO_Thread_Lane::~TAO_Thread_Lane (void)
+{
+}
+
+void
+TAO_Thread_Lane::finalize (void)
+{
+ // Finalize resources.
+ this->resources_.finalize ();
+}
+
+void
+TAO_Thread_Lane::shutdown_reactor (void)
+{
+ this->resources_.shutdown_reactor ();
+}
+
+void
+TAO_Thread_Lane::wait (void)
+{
+ this->threads_.wait ();
+}
+
+int
+TAO_Thread_Lane::is_collocated (const TAO_MProfile &mprofile)
{
+ return this->resources_.is_collocated (mprofile);
}
int
TAO_Thread_Lane::create_static_threads (void)
{
+ // Create static threads.
return this->create_dynamic_threads (this->static_threads_);
}
@@ -91,22 +272,40 @@ TAO_Thread_Lane::create_dynamic_threads (CORBA::ULong number_of_threads)
for (index = 0;
index != number_of_threads;
++index)
- stack_size_array[index] = this->thread_pool_.stack_size_;
+ stack_size_array[index] =
+ this->pool ().stack_size_;
// Make sure the dynamically created stack size array is properly
// deleted.
ACE_Auto_Basic_Array_Ptr<size_t> auto_stack_size_array (stack_size_array);
+ TAO_ORB_Core &orb_core =
+ this->pool ().manager ().orb_core ();
+
+ long flags =
+ default_flags |
+ orb_core.orb_params ()->scope_policy () |
+ orb_core.orb_params ()->sched_policy ();
+
// Activate the threads.
- return this->threads_.activate (default_flags,
- number_of_threads,
- force_active,
- this->lane_priority_,
- default_grp_id,
- default_task,
- default_thread_handles,
- default_stack,
- stack_size_array);
+ int result =
+ this->threads_.activate (flags,
+ number_of_threads,
+ force_active,
+ this->native_priority_,
+ default_grp_id,
+ default_task,
+ default_thread_handles,
+ default_stack,
+ stack_size_array);
+
+ if (result != 0)
+ return result;
+
+ this->current_threads_ +=
+ number_of_threads;
+
+ return result;
}
CORBA::ULong
@@ -116,9 +315,9 @@ TAO_Thread_Lane::id (void) const
}
TAO_Thread_Pool &
-TAO_Thread_Lane::thread_pool (void) const
+TAO_Thread_Lane::pool (void) const
{
- return this->thread_pool_;
+ return this->pool_;
}
CORBA::Short
@@ -127,6 +326,12 @@ TAO_Thread_Lane::lane_priority (void) const
return this->lane_priority_;
}
+CORBA::Short
+TAO_Thread_Lane::native_priority (void) const
+{
+ return this->native_priority_;
+}
+
CORBA::ULong
TAO_Thread_Lane::static_threads (void) const
{
@@ -139,13 +344,32 @@ TAO_Thread_Lane::dynamic_threads (void) const
return this->dynamic_threads_;
}
+CORBA::ULong
+TAO_Thread_Lane::current_threads (void) const
+{
+ return this->current_threads_;
+}
+
+void
+TAO_Thread_Lane::current_threads (CORBA::ULong current_threads)
+{
+ this->current_threads_ = current_threads;
+}
+
TAO_Thread_Pool_Threads &
TAO_Thread_Lane::threads (void)
{
return this->threads_;
}
-TAO_Thread_Pool::TAO_Thread_Pool (CORBA::ULong id,
+TAO_Thread_Lane_Resources &
+TAO_Thread_Lane::resources (void)
+{
+ return this->resources_;
+}
+
+TAO_Thread_Pool::TAO_Thread_Pool (TAO_Thread_Pool_Manager &manager,
+ CORBA::ULong id,
CORBA::ULong stack_size,
CORBA::ULong static_threads,
CORBA::ULong dynamic_threads,
@@ -153,8 +377,9 @@ TAO_Thread_Pool::TAO_Thread_Pool (CORBA::ULong id,
CORBA::Boolean allow_request_buffering,
CORBA::ULong max_buffered_requests,
CORBA::ULong max_request_buffer_size,
- CORBA::ORB_ptr orb)
- : id_ (id),
+ CORBA::Environment &ACE_TRY_ENV)
+ : manager_ (manager),
+ id_ (id),
stack_size_ (stack_size),
allow_borrowing_ (0),
allow_request_buffering_ (allow_request_buffering),
@@ -162,26 +387,34 @@ TAO_Thread_Pool::TAO_Thread_Pool (CORBA::ULong id,
max_request_buffer_size_ (max_request_buffer_size),
lanes_ (0),
number_of_lanes_ (1),
- thread_manager_ (*orb->orb_core ()->thr_mgr ()),
- orb_ (CORBA::ORB::_duplicate (orb))
+ with_lanes_ (0)
{
+ // No support for buffering.
+ if (allow_request_buffering)
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+
+ // Create one lane.
this->lanes_ = new TAO_Thread_Lane *[this->number_of_lanes_];
- this->lanes_[0] = new TAO_Thread_Lane (*this,
- 0,
- default_priority,
- static_threads,
- dynamic_threads);
+ this->lanes_[0] =
+ new TAO_Thread_Lane (*this,
+ 0,
+ default_priority,
+ static_threads,
+ dynamic_threads,
+ ACE_TRY_ENV);
}
-TAO_Thread_Pool::TAO_Thread_Pool (CORBA::ULong id,
+TAO_Thread_Pool::TAO_Thread_Pool (TAO_Thread_Pool_Manager &manager,
+ CORBA::ULong id,
CORBA::ULong stack_size,
const RTCORBA::ThreadpoolLanes &lanes,
CORBA::Boolean allow_borrowing,
CORBA::Boolean allow_request_buffering,
CORBA::ULong max_buffered_requests,
CORBA::ULong max_request_buffer_size,
- CORBA::ORB_ptr orb)
- : id_ (id),
+ CORBA::Environment &ACE_TRY_ENV)
+ : manager_ (manager),
+ id_ (id),
stack_size_ (stack_size),
allow_borrowing_ (allow_borrowing),
allow_request_buffering_ (allow_request_buffering),
@@ -189,22 +422,43 @@ TAO_Thread_Pool::TAO_Thread_Pool (CORBA::ULong id,
max_request_buffer_size_ (max_request_buffer_size),
lanes_ (0),
number_of_lanes_ (lanes.length ()),
- thread_manager_ (*orb->orb_core ()->thr_mgr ()),
- orb_ (CORBA::ORB::_duplicate (orb))
+ with_lanes_ (1)
{
+ // No support for buffering or borrowing.
+ if (allow_borrowing ||
+ allow_request_buffering)
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
+
+ // Create multiple lane.
this->lanes_ = new TAO_Thread_Lane *[this->number_of_lanes_];
for (CORBA::ULong i = 0;
i != this->number_of_lanes_;
++i)
- this->lanes_[i] = new TAO_Thread_Lane (*this,
- i,
- lanes[i].lane_priority,
- lanes[i].static_threads,
- lanes[i].dynamic_threads);
+ this->lanes_[i] =
+ new TAO_Thread_Lane (*this,
+ i,
+ lanes[i].lane_priority,
+ lanes[i].static_threads,
+ lanes[i].dynamic_threads,
+ ACE_TRY_ENV);
+}
+
+void
+TAO_Thread_Pool::open (CORBA::Environment &ACE_TRY_ENV)
+{
+ // Open all the lanes.
+ for (CORBA::ULong i = 0;
+ i != this->number_of_lanes_;
+ ++i)
+ {
+ this->lanes_[i]->open (ACE_TRY_ENV);
+ ACE_CHECK;
+ }
}
TAO_Thread_Pool::~TAO_Thread_Pool (void)
{
+ // Delete all the lanes.
for (CORBA::ULong i = 0;
i != this->number_of_lanes_;
++i)
@@ -213,6 +467,54 @@ TAO_Thread_Pool::~TAO_Thread_Pool (void)
delete[] this->lanes_;
}
+void
+TAO_Thread_Pool::finalize (void)
+{
+ // Finalize all the lanes.
+ for (CORBA::ULong i = 0;
+ i != this->number_of_lanes_;
+ ++i)
+ this->lanes_[i]->finalize ();
+}
+
+void
+TAO_Thread_Pool::shutdown_reactor (void)
+{
+ // Finalize all the lanes.
+ for (CORBA::ULong i = 0;
+ i != this->number_of_lanes_;
+ ++i)
+ this->lanes_[i]->shutdown_reactor ();
+}
+
+void
+TAO_Thread_Pool::wait (void)
+{
+ // Finalize all the lanes.
+ for (CORBA::ULong i = 0;
+ i != this->number_of_lanes_;
+ ++i)
+ this->lanes_[i]->wait ();
+}
+
+int
+TAO_Thread_Pool::is_collocated (const TAO_MProfile &mprofile)
+{
+ // Finalize all the lanes.
+ for (CORBA::ULong i = 0;
+ i != this->number_of_lanes_;
+ ++i)
+ {
+ int result =
+ this->lanes_[i]->is_collocated (mprofile);
+
+ if (result)
+ return result;
+ }
+
+ return 0;
+}
+
int
TAO_Thread_Pool::create_static_threads (void)
{
@@ -232,6 +534,18 @@ TAO_Thread_Pool::create_static_threads (void)
return 0;
}
+int
+TAO_Thread_Pool::with_lanes (void) const
+{
+ return this->with_lanes_;
+}
+
+TAO_Thread_Pool_Manager &
+TAO_Thread_Pool::manager (void) const
+{
+ return this->manager_;
+}
+
CORBA::ULong
TAO_Thread_Pool::id (void) const
{
@@ -280,18 +594,6 @@ TAO_Thread_Pool::number_of_lanes (void) const
return this->number_of_lanes_;
}
-ACE_Thread_Manager &
-TAO_Thread_Pool::thread_manager (void)
-{
- return this->thread_manager_;
-}
-
-CORBA::ORB_ptr
-TAO_Thread_Pool::orb (void) const
-{
- return CORBA::ORB::_duplicate (this->orb_.in ());
-}
-
#define TAO_THREAD_POOL_MANAGER_GUARD \
ACE_GUARD_THROW_EX ( \
ACE_SYNCH_MUTEX, \
@@ -303,22 +605,71 @@ TAO_Thread_Pool::orb (void) const
0), \
CORBA::COMPLETED_NO));
-TAO_Thread_Pool_Manager::TAO_Thread_Pool_Manager (TAO_ORB_Core *orb_core)
+TAO_Thread_Pool_Manager::TAO_Thread_Pool_Manager (TAO_ORB_Core &orb_core)
: orb_core_ (orb_core),
thread_pools_ (),
- thread_pool_id_counter_ (0),
+ thread_pool_id_counter_ (1),
lock_ ()
{
}
TAO_Thread_Pool_Manager::~TAO_Thread_Pool_Manager (void)
{
+ // Delete all the pools.
for (THREAD_POOLS::ITERATOR iterator = this->thread_pools_.begin ();
iterator != this->thread_pools_.end ();
++iterator)
delete (*iterator).int_id_;
}
+void
+TAO_Thread_Pool_Manager::finalize (void)
+{
+ // Finalize all the pools.
+ for (THREAD_POOLS::ITERATOR iterator = this->thread_pools_.begin ();
+ iterator != this->thread_pools_.end ();
+ ++iterator)
+ (*iterator).int_id_->finalize ();
+}
+
+void
+TAO_Thread_Pool_Manager::shutdown_reactor (void)
+{
+ // Finalize all the pools.
+ for (THREAD_POOLS::ITERATOR iterator = this->thread_pools_.begin ();
+ iterator != this->thread_pools_.end ();
+ ++iterator)
+ (*iterator).int_id_->shutdown_reactor ();
+}
+
+void
+TAO_Thread_Pool_Manager::wait (void)
+{
+ // Finalize all the pools.
+ for (THREAD_POOLS::ITERATOR iterator = this->thread_pools_.begin ();
+ iterator != this->thread_pools_.end ();
+ ++iterator)
+ (*iterator).int_id_->wait ();
+}
+
+int
+TAO_Thread_Pool_Manager::is_collocated (const TAO_MProfile &mprofile)
+{
+ // Finalize all the pools.
+ for (THREAD_POOLS::ITERATOR iterator = this->thread_pools_.begin ();
+ iterator != this->thread_pools_.end ();
+ ++iterator)
+ {
+ int result =
+ (*iterator).int_id_->is_collocated (mprofile);
+
+ if (result)
+ return result;
+ }
+
+ return 0;
+}
+
RTCORBA::ThreadpoolId
TAO_Thread_Pool_Manager::create_threadpool (CORBA::ULong stacksize,
CORBA::ULong static_threads,
@@ -393,7 +744,8 @@ TAO_Thread_Pool_Manager::create_threadpool_i (CORBA::ULong stacksize,
TAO_Thread_Pool *thread_pool = 0;
ACE_NEW_THROW_EX (thread_pool,
- TAO_Thread_Pool (this->thread_pool_id_counter_,
+ TAO_Thread_Pool (*this,
+ this->thread_pool_id_counter_,
stacksize,
static_threads,
dynamic_threads,
@@ -401,7 +753,7 @@ TAO_Thread_Pool_Manager::create_threadpool_i (CORBA::ULong stacksize,
allow_request_buffering,
max_buffered_requests,
max_request_buffer_size,
- this->orb_core_->orb ()),
+ ACE_TRY_ENV),
CORBA::NO_MEMORY ());
ACE_CHECK_RETURN (0);
@@ -423,14 +775,15 @@ TAO_Thread_Pool_Manager::create_threadpool_with_lanes_i (CORBA::ULong stacksize,
TAO_Thread_Pool *thread_pool = 0;
ACE_NEW_THROW_EX (thread_pool,
- TAO_Thread_Pool (this->thread_pool_id_counter_,
+ TAO_Thread_Pool (*this,
+ this->thread_pool_id_counter_,
stacksize,
lanes,
allow_borrowing,
allow_request_buffering,
max_buffered_requests,
max_request_buffer_size,
- this->orb_core_->orb ()),
+ ACE_TRY_ENV),
CORBA::NO_MEMORY ());
ACE_CHECK_RETURN (0);
@@ -446,11 +799,15 @@ TAO_Thread_Pool_Manager::create_threadpool_helper (TAO_Thread_Pool *thread_pool,
// Make sure of safe deletion in case of errors.
auto_ptr<TAO_Thread_Pool> safe_thread_pool (thread_pool);
+ // Open the pool.
+ thread_pool->open (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
// Create the static threads.
int result =
thread_pool->create_static_threads ();
- // Throw exceptin in case of errors.
+ // Throw exception in case of errors.
if (result != 0)
ACE_THROW_RETURN (CORBA::INTERNAL (),
result);
@@ -493,10 +850,31 @@ TAO_Thread_Pool_Manager::destroy_threadpool_i (RTCORBA::ThreadpoolId thread_pool
if (result != 0)
ACE_THROW (RTCORBA::RTORB::InvalidThreadpool ());
+ // Shutdown reactor.
+ thread_pool->shutdown_reactor ();
+
+ // Wait for the threads.
+ thread_pool->wait ();
+
+ // Finalize resources.
+ thread_pool->finalize ();
+
// Delete the thread pool.
delete thread_pool;
}
+TAO_ORB_Core &
+TAO_Thread_Pool_Manager::orb_core (void) const
+{
+ return this->orb_core_;
+}
+
+ACE_SYNCH_MUTEX &
+TAO_Thread_Pool_Manager::lock (void)
+{
+ return this->lock_;
+}
+
TAO_Thread_Pool_Manager::THREAD_POOLS &
TAO_Thread_Pool_Manager::thread_pools (void)
{
@@ -529,4 +907,3 @@ template class ACE_Auto_Basic_Array_Ptr<size_t>;
#pragma instantiate ACE_Auto_Basic_Array_Ptr<size_t>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
diff --git a/TAO/tao/RTCORBA/Thread_Pool.h b/TAO/tao/RTCORBA/Thread_Pool.h
index bce170bd27e..3f8bdeb4f80 100644
--- a/TAO/tao/RTCORBA/Thread_Pool.h
+++ b/TAO/tao/RTCORBA/Thread_Pool.h
@@ -18,14 +18,44 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "ace/Task.h"
-#include "RTCORBA.h"
-#include "tao/ORB.h"
+#define TAO_RTCORBA_SAFE_INCLUDE
+#include "RTCORBAC.h"
+#undef TAO_RTCORBA_SAFE_INCLUDE
+
#include "ace/Hash_Map_Manager.h"
+#include "tao/Thread_Lane_Resources.h"
+#include "tao/New_Leader_Generator.h"
+#include "ace/Task.h"
class TAO_Thread_Lane;
/**
+ * @class TAO_RT_New_Leader_Generator
+ *
+ * @brief Class for creating dynamic threads.
+ *
+ * \nosubgrouping
+ *
+ **/
+class TAO_RTCORBA_Export TAO_RT_New_Leader_Generator
+ : public TAO_New_Leader_Generator
+{
+public:
+
+ /// Constructor.
+ TAO_RT_New_Leader_Generator (TAO_Thread_Lane &lane);
+
+ /// Leader/Follower class uses this method to notify the system that
+ /// we are out of leaders.
+ void no_leaders_available (void);
+
+private:
+
+ /// Lane associated with this leader generator.
+ TAO_Thread_Lane &lane_;
+};
+
+/**
* @class TAO_Thread_Pool_Threads
*
* @brief Class representing a thread running in a thread lane.
@@ -38,8 +68,7 @@ class TAO_RTCORBA_Export TAO_Thread_Pool_Threads : public ACE_Task_Base
public:
/// Constructor.
- TAO_Thread_Pool_Threads (TAO_Thread_Lane &lane,
- ACE_Thread_Manager &tm);
+ TAO_Thread_Pool_Threads (TAO_Thread_Lane &lane);
/// Method executed when a thread is spawned.
int svc (void);
@@ -47,6 +76,10 @@ public:
/// Accessor to the lane to which this thread belongs to.
TAO_Thread_Lane &lane (void) const;
+ /// Set TSS resources for the current thread.
+ static void set_tss_resources (TAO_ORB_Core &orb_core,
+ TAO_Thread_Lane &thread_lane);
+
private:
/// Lane to which this thread belongs to.
@@ -72,7 +105,26 @@ public:
CORBA::ULong id,
CORBA::Short lane_priority,
CORBA::ULong static_threads,
- CORBA::ULong dynamic_threads);
+ CORBA::ULong dynamic_threads,
+ CORBA::Environment &ACE_TRY_ENV);
+
+ /// Destructor.
+ ~TAO_Thread_Lane (void);
+
+ /// Open the lane.
+ void open (CORBA::Environment &ACE_TRY_ENV);
+
+ /// Finalize the resources.
+ void finalize (void);
+
+ /// Shutdown the reactor.
+ void shutdown_reactor (void);
+
+ /// Wait for threads to exit.
+ void wait (void);
+
+ // Does <mprofile> belong to us?
+ int is_collocated (const TAO_MProfile &mprofile);
/// Create the static threads - only called once.
int create_static_threads (void);
@@ -84,29 +136,49 @@ public:
/// @name Accessors
// @{
+ TAO_Thread_Pool &pool (void) const;
+ CORBA::ULong id (void) const;
+
CORBA::Short lane_priority (void) const;
CORBA::ULong static_threads (void) const;
CORBA::ULong dynamic_threads (void) const;
- CORBA::ULong id (void) const;
+ CORBA::ULong current_threads (void) const;
+ void current_threads (CORBA::ULong);
+
+ CORBA::Short native_priority (void) const;
- TAO_Thread_Pool &thread_pool (void) const;
TAO_Thread_Pool_Threads &threads (void);
+ TAO_Thread_Lane_Resources &resources (void);
+
// @}
private:
- TAO_Thread_Pool &thread_pool_;
+ /// Validate lane's priority and map it to a native value.
+ void validate_and_map_priority (CORBA::Environment &ACE_TRY_ENV);
+
+ TAO_Thread_Pool &pool_;
CORBA::ULong id_;
CORBA::Short lane_priority_;
CORBA::ULong static_threads_;
CORBA::ULong dynamic_threads_;
+ CORBA::ULong current_threads_;
+
TAO_Thread_Pool_Threads threads_;
+
+ TAO_RT_New_Leader_Generator new_thread_generator_;
+
+ TAO_Thread_Lane_Resources resources_;
+
+ CORBA::Short native_priority_;
};
+class TAO_Thread_Pool_Manager;
+
/**
* @class TAO_Thread_Pool
*
@@ -123,7 +195,8 @@ class TAO_RTCORBA_Export TAO_Thread_Pool
public:
/// Constructor (for pools without lanes).
- TAO_Thread_Pool (CORBA::ULong id,
+ TAO_Thread_Pool (TAO_Thread_Pool_Manager &manager,
+ CORBA::ULong id,
CORBA::ULong stack_size,
CORBA::ULong static_threads,
CORBA::ULong dynamic_threads,
@@ -131,27 +204,47 @@ public:
CORBA::Boolean allow_request_buffering,
CORBA::ULong max_buffered_requests,
CORBA::ULong max_request_buffer_size,
- CORBA::ORB_ptr orb);
+ CORBA::Environment &ACE_TRY_ENV);
/// Constructor (for pools with lanes).
- TAO_Thread_Pool (CORBA::ULong id,
+ TAO_Thread_Pool (TAO_Thread_Pool_Manager &manager,
+ CORBA::ULong id,
CORBA::ULong stack_size,
const RTCORBA::ThreadpoolLanes &lanes,
CORBA::Boolean allow_borrowing,
CORBA::Boolean allow_request_buffering,
CORBA::ULong max_buffered_requests,
CORBA::ULong max_request_buffer_size,
- CORBA::ORB_ptr orb);
+ CORBA::Environment &ACE_TRY_ENV);
/// Destructor.
~TAO_Thread_Pool (void);
+ /// Open the pool.
+ void open (CORBA::Environment &ACE_TRY_ENV);
+
+ /// Finalize the resources.
+ void finalize (void);
+
+ /// Shutdown the reactor.
+ void shutdown_reactor (void);
+
+ /// Wait for threads to exit.
+ void wait (void);
+
+ // Does <mprofile> belong to us?
+ int is_collocated (const TAO_MProfile &mprofile);
+
/// Create the static threads - only called once.
int create_static_threads (void);
+ /// Check if this thread pool has (explicit) lanes.
+ int with_lanes (void) const;
+
/// @name Accessors
// @{
+ TAO_Thread_Pool_Manager &manager (void) const;
CORBA::ULong id (void) const;
CORBA::ULong stack_size (void) const;
@@ -160,9 +253,6 @@ public:
CORBA::ULong max_buffered_requests (void) const;
CORBA::ULong max_request_buffer_size (void) const;
- ACE_Thread_Manager &thread_manager (void);
-
- CORBA::ORB_ptr orb (void) const;
TAO_Thread_Lane **lanes (void);
CORBA::ULong number_of_lanes (void) const;
@@ -170,6 +260,7 @@ public:
private:
+ TAO_Thread_Pool_Manager &manager_;
CORBA::ULong id_;
CORBA::ULong stack_size_;
@@ -180,12 +271,11 @@ private:
TAO_Thread_Lane **lanes_;
CORBA::ULong number_of_lanes_;
-
- ACE_Thread_Manager &thread_manager_;
-
- CORBA::ORB_var orb_;
+ int with_lanes_;
};
+class TAO_ORB_Core;
+
/**
* @class TAO_Thread_Pool_Manager
*
@@ -199,14 +289,22 @@ class TAO_RTCORBA_Export TAO_Thread_Pool_Manager
public:
/// Constructor.
- TAO_Thread_Pool_Manager (TAO_ORB_Core *orb_core);
+ TAO_Thread_Pool_Manager (TAO_ORB_Core &orb_core);
/// Destructor.
~TAO_Thread_Pool_Manager (void);
- /// Create the static threads - only called once.
- int
- create_static_threads (void);
+ /// Finalize the resources.
+ void finalize (void);
+
+ /// Shutdown the reactor.
+ void shutdown_reactor (void);
+
+ /// Wait for threads to exit.
+ void wait (void);
+
+ // Does <mprofile> belong to us?
+ int is_collocated (const TAO_MProfile &mprofile);
/// Create a threadpool without lanes.
RTCORBA::ThreadpoolId
@@ -217,7 +315,7 @@ public:
CORBA::Boolean allow_request_buffering,
CORBA::ULong max_buffered_requests,
CORBA::ULong max_request_buffer_size,
- CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException));
/// Create a threadpool with lanes.
@@ -228,22 +326,29 @@ public:
CORBA::Boolean allow_request_buffering,
CORBA::ULong max_buffered_requests,
CORBA::ULong max_request_buffer_size,
- CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException));
/// Destroy a threadpool.
- void
- destroy_threadpool (RTCORBA::ThreadpoolId threadpool,
- CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ void destroy_threadpool (RTCORBA::ThreadpoolId threadpool,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
RTCORBA::RTORB::InvalidThreadpool));
/// Collection of thread pools.
typedef ACE_Hash_Map_Manager<RTCORBA::ThreadpoolId, TAO_Thread_Pool *, ACE_Null_Mutex> THREAD_POOLS;
- /// Access the thread pools managed by this class.
+ /// @name Accessors
+ // @{
+
+ ACE_SYNCH_MUTEX &lock (void);
+
+ TAO_ORB_Core &orb_core (void) const;
+
THREAD_POOLS &thread_pools (void);
+ // @}
+
private:
/// @name Helpers
@@ -282,7 +387,7 @@ private:
// @}
- TAO_ORB_Core *orb_core_;
+ TAO_ORB_Core &orb_core_;
THREAD_POOLS thread_pools_;
RTCORBA::ThreadpoolId thread_pool_id_counter_;