summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/schedulability_check.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/schedulability_check.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/schedulability_check.cpp
index a33dc390dba..011a885fd1e 100644
--- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/schedulability_check.cpp
+++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/schedulability_check.cpp
@@ -29,6 +29,18 @@ unsigned int consistency_level = 0;
typedef std::map <Processor, FailureAwareWCRT> WCRT_MAP;
+class TaskSorter : public std::binary_function <TASK_POSITION,
+ TASK_POSITION,
+ bool>
+{
+public:
+ bool operator () (const TASK_POSITION & p1,
+ const TASK_POSITION & p2)
+ {
+ return (extract_rank (p1.second.name) < extract_rank (p2.second.name));
+ }
+};
+
class ScheduleChecker
{
public:
@@ -65,6 +77,15 @@ public:
}
}
+ for (REPLICA_GROUPS::iterator rg_it = replica_groups_.begin ();
+ rg_it != replica_groups_.end ();
+ ++rg_it)
+ {
+ std::sort (rg_it->second.begin (),
+ rg_it->second.end (),
+ TaskSorter ());
+ }
+
// fill wcrt_map
wcrt_map_.insert (std::pair <Processor, FailureAwareWCRT> (
processor,