summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
Diffstat (limited to 'TAO')
-rw-r--r--TAO/ChangeLog-99c11
-rw-r--r--TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp14
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h7
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp14
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h10
5 files changed, 44 insertions, 12 deletions
diff --git a/TAO/ChangeLog-99c b/TAO/ChangeLog-99c
index 0dbd9b05bac..5c583337d2a 100644
--- a/TAO/ChangeLog-99c
+++ b/TAO/ChangeLog-99c
@@ -1,4 +1,13 @@
-Mon Jul 05 19:13:56 1999 Irfan Pyarali <irfan@cs.wustl.edu>
+Tue Jul 06 14:15:00 1999 Chris Gill <cdgill@cs.wustl.edu>
+
+ * orbsvcs/Scheduling_Service/Scheduling_Service.cpp
+ orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h
+ orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.{cpp, h}:
+ added missing template instantiations, fixed exception
+ specification problems reported by Sun C++, OSF1 cxx.
+
+
+Tue Jul 06 13:00:00 1999 Irfan Pyarali <irfan@cs.wustl.edu>
* tao/Object_Adapter.cpp (servant_locator_cleanup): Using the
zero'ness of the cookie to determine if we need to call the
diff --git a/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp b/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp
index d1339739f95..c9388cdbaba 100644
--- a/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp
+++ b/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp
@@ -298,12 +298,19 @@ int main (int argc, char *argv[])
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
#if (! defined (__GNUC__)) || (__GNUC__ > 2) || \
(__GNUC__ == 2 && defined (__GNUC_MINOR__) && __GNUC_MINOR__ >= 8)
+template class ACE_Equal_To<int>;
template class ACE_Hash_Map_Manager_Ex<int, RtecScheduler::Config_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>;
template class ACE_Hash_Map_Manager_Ex<int, RtecScheduler::Dependency_Set *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>;
template class ACE_Hash_Map_Manager_Ex<int, RtecScheduler::RT_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>;
template class ACE_Hash_Map_Iterator_Base_Ex<int, RtecScheduler::Config_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>;
template class ACE_Hash_Map_Iterator_Base_Ex<int, RtecScheduler::Dependency_Set *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>;
template class ACE_Hash_Map_Iterator_Base_Ex<int, RtecScheduler::RT_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>;
+template class ACE_Hash_Map_Iterator_Ex<int,RtecScheduler::Config_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_Thread_Mutex>;
+template class ACE_Hash_Map_Iterator_Ex<int,RtecScheduler::Dependency_Set*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_Thread_Mutex>;
+template class ACE_Hash_Map_Iterator_Ex<int,RtecScheduler::RT_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_Thread_Mutex>;
+template class ACE_Hash_Map_Reverse_Iterator_Ex<int,RtecScheduler::Config_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_Thread_Mutex>;
+template class ACE_Hash_Map_Reverse_Iterator_Ex<int,RtecScheduler::Dependency_Set*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_Thread_Mutex>;
+template class ACE_Hash_Map_Reverse_Iterator_Ex<int,RtecScheduler::RT_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_Thread_Mutex>;
template class ACE_Hash_Map_Entry<int, RtecScheduler::Config_Info *>;
template class ACE_Hash_Map_Entry<int, RtecScheduler::Dependency_Set *>;
template class ACE_Hash_Map_Entry<int, RtecScheduler::RT_Info *>;
@@ -323,12 +330,19 @@ template class TAO_RSE_Utilization_Visitor<TAO_MUF_Reconfig_Sched_Strategy>;
#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
#if (! defined (__GNUC__)) || (__GNUC__ > 2) || \
(__GNUC__ == 2 && defined (__GNUC_MINOR__) && __GNUC_MINOR__ >= 8)
+#pragma instantiate ACE_Equal_To<int>
#pragma instantiate ACE_Hash_Map_Manager_Ex<int, RtecScheduler::Config_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>
#pragma instantiate ACE_Hash_Map_Manager_Ex<int, RtecScheduler::Dependency_Set *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>
#pragma instantiate ACE_Hash_Map_Manager_Ex<int, RtecScheduler::RT_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>
#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<int, RtecScheduler::Config_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>
#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<int, RtecScheduler::Dependency_Set *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>
#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<int, RtecScheduler::RT_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>
+#pragma instantiate ACE_Hash_Map_Iterator_Ex<int,RtecScheduler::Config_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_Thread_Mutex>
+#pragma instantiate ACE_Hash_Map_Iterator_Ex<int,RtecScheduler::Dependency_Set*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_Thread_Mutex>
+#pragma instantiate ACE_Hash_Map_Iterator_Ex<int,RtecScheduler::RT_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_Thread_Mutex>
+#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<int,RtecScheduler::Config_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_Thread_Mutex>
+#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<int,RtecScheduler::Dependency_Set*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_Thread_Mutex>
+#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<int,RtecScheduler::RT_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_Thread_Mutex>
#pragma instantiate ACE_Hash_Map_Entry<int, RtecScheduler::Config_Info *>
#pragma instantiate ACE_Hash_Map_Entry<int, RtecScheduler::Dependency_Set *>
#pragma instantiate ACE_Hash_Map_Entry<int, RtecScheduler::RT_Info *>
diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h
index 5efd23b6460..de8ef81c5bb 100644
--- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h
+++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h
@@ -239,9 +239,10 @@ class TAO_ORBSVCS_Export TAO_MUF_Reconfig_Sched_Strategy
public:
static int total_priority_comp (const void *, const void *);
- // Ordering function used to qsort an array of TAO_Reconfig_Scheduler_Entry
- // pointers into a total <priority, subpriority> ordering. Returns -1 if the
- // first one is higher, 0 if they're the same, and 1 if the second one is higher.
+ // Ordering function used to qsort an array of
+ // TAO_Reconfig_Scheduler_Entry pointers into a total <priority,
+ // subpriority> ordering. Returns -1 if the first one is higher, 0
+ // if they're the same, and 1 if the second one is higher.
static int compare_priority (TAO_Reconfig_Scheduler_Entry &,
TAO_Reconfig_Scheduler_Entry &);
diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp
index 2b4dcf9cc03..6e4c12e8198 100644
--- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp
+++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp
@@ -432,7 +432,7 @@ set (RtecScheduler::handle_t handle,
// Test the utilization difference between the old and new values.
if ((sched_entry_ptr->orig_rt_info_data ().period != rt_info_ptr->period
- && sched_entry_ptr->orig_rt_info_data ().worst_case_execution_time
+ && sched_entry_ptr->orig_rt_info_data ().worst_case_execution_time
!= rt_info_ptr->worst_case_execution_time))
{
CORBA::Double orig_time = ACE_static_cast (
@@ -451,7 +451,7 @@ set (RtecScheduler::handle_t handle,
CORBA::Double new_period = ACE_static_cast (
CORBA::Double,
ACE_UINT64_DBLCAST_ADAPTER (rt_info_ptr->period));
-
+
if ((orig_time / orig_period) - (new_time / new_period) > DBL_EPSILON
|| (orig_time / orig_period) - (new_time / new_period) < DBL_EPSILON)
{
@@ -470,7 +470,7 @@ set (RtecScheduler::handle_t handle,
// If the period changed, look up the handle in the calling
// dependency map and see if there is anything there: if so,
// the propagation is unstable.
- if (sched_entry_ptr->orig_rt_info_data ().period
+ if (sched_entry_ptr->orig_rt_info_data ().period
!= rt_info_ptr->period)
{
// Get the dependency set for the current entry.
@@ -1117,7 +1117,8 @@ dfs_traverse_i (CORBA::Environment &ACE_TRY_ENV)
// Helper function to compare the DFS finish times of
// two task entries, so qsort orders these in topological
// order, with the higher times *first*
-extern "C" int
+template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
comp_entry_finish_times (const void *first, const void *second)
{
const TAO_Reconfig_Scheduler_Entry *first_entry =
@@ -1169,7 +1170,8 @@ detect_cycles_i (CORBA::Environment &ACE_TRY_ENV)
::qsort (ACE_reinterpret_cast (void *, entry_ptr_array_),
next_handle_,
sizeof (TAO_Reconfig_Scheduler_Entry *),
- comp_entry_finish_times);
+ ACE_reinterpret_cast (COMP_FUNC,
+ TAO_Reconfig_Scheduler::comp_entry_finish_times));
// Traverse entries in reverse topological order,
// looking for strongly connected components (cycles).
@@ -1254,7 +1256,7 @@ assign_priorities_i (CORBA::Environment &ACE_TRY_ENV)
TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY> prio_visitor;
for (int i = 0; i < this->next_handle_; ++i)
{
- int result = prio_visitor.visit (* (entry_ptr_array_ [i]));
+ int result = prio_visitor.visit (* (entry_ptr_array_ [i]));
if (result < 0)
{
// Something bad happened with the internal data structures.
diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h
index 2a00105520a..88f02fcb032 100644
--- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h
+++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h
@@ -32,7 +32,6 @@
template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
class TAO_Reconfig_Scheduler :
public POA_RtecScheduler::Scheduler
-{
// = TITLE
// A servant for RtecScheduler::Scheduler that can be initialized
// and run solely with precomputed scheduling information, but is also
@@ -47,6 +46,7 @@ class TAO_Reconfig_Scheduler :
// during schedule configuration, so that it can be used during
// both schedule configuration and run-time phases of operation.
//
+{
public:
TAO_Reconfig_Scheduler ();
@@ -326,6 +326,11 @@ protected:
// Traverses dependency graph, assigning a topological ordering.
// Resets DFS map entries, do DFS traversal, constructs DFS map.
+ static int comp_entry_finish_times (const void *first, const void *second);
+ // Helper function to compare the DFS finish times of
+ // two task entries, so qsort orders these in topological
+ // order, with the higher times *first*.
+
virtual void detect_cycles_i (CORBA::Environment &_env)
ACE_THROW_SPEC ((CORBA::SystemException,
RtecScheduler::INTERNAL,
@@ -342,7 +347,8 @@ protected:
virtual void assign_priorities_i (CORBA::Environment &_env)
ACE_THROW_SPEC ((CORBA::SystemException,
- RtecScheduler::INTERNAL));
+ RtecScheduler::INTERNAL,
+ RtecScheduler::DUPLICATE_NAME));
// Sort operations by urgency (done by strategy), then
// assign priorities and subpriorities in one pass.
// Sets last scheduled priority.