summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-05-01 16:13:40 +0000
committerwolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-05-01 16:13:40 +0000
commit1d190b21169da60c516600db67c8aa70db9d0c8b (patch)
tree65a51f792d2527693964142dc2b41647c8e5fea2
parent5821a379e81584255882f225cd4879e863a3d88a (diff)
downloadATCD-1d190b21169da60c516600db67c8aa70db9d0c8b.tar.gz
changed update_schedule () logic in the scheduler classes
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Forward_Packing.cpp4
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.cpp16
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.h8
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.cpp20
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.h6
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.cpp23
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.h8
7 files changed, 37 insertions, 48 deletions
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Forward_Packing.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Forward_Packing.cpp
index 4459149188d..e6298660413 100644
--- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Forward_Packing.cpp
+++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/FTRMFF_Forward_Packing.cpp
@@ -94,6 +94,10 @@ FTRMFF_Forward_Packing_Algorithm::operator () (const TASK_LIST & tasks)
unschedulable_.push_back (pg);
break;
}
+ else
+ {
+ scheduler_->update_schedule (r);
+ }
TRACE (*task_it << " -> " << r.processor);
}
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.cpp
index 0b3de90d6d1..c60dba0d4ce 100644
--- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.cpp
+++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.cpp
@@ -97,34 +97,32 @@ Forward_Ranking_Scheduler::schedule_task (const Task & task,
}
void
-Forward_Ranking_Scheduler::update_schedule (const Task & task,
- const Processor & processor)
+Forward_Ranking_Scheduler::update_schedule (const ScheduleResult & result)
{
- this->Scheduler::update_schedule (task, processor);
+ this->Scheduler::update_schedule (result);
- this->update_failure_map (task, processor);
+ this->update_failure_map (result);
}
void
-Forward_Ranking_Scheduler::update_failure_map (const Task & task,
- const Processor & /* processor */)
+Forward_Ranking_Scheduler::update_failure_map (const ScheduleResult & result)
{
PROCESSOR_SET proc_dependencies;
REPLICA_GROUPS::iterator it =
- replica_groups_.find (primary_name (task));
+ replica_groups_.find (primary_name (result.task));
if (it != replica_groups_.end ())
{
for (TASK_POSITIONS::iterator tp_it = it->second.begin ();
- tp_it != it->second.begin () + task.rank;
+ tp_it != it->second.begin () + result.task.rank;
++tp_it)
{
proc_dependencies.insert (tp_it->first);
}
}
- failure_map_.bind (task.name.c_str (), proc_dependencies);
+ failure_map_.bind (result.task.name.c_str (), proc_dependencies);
TRACE ("Failure Map: " << failure_map_);
}
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.h b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.h
index 096c62cec93..f59767610a1 100644
--- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.h
+++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Forward_Ranking_Scheduler.h
@@ -53,15 +53,13 @@ public:
const Processor & processor);
protected:
- virtual void update_schedule (const Task & task,
- const Processor & processor);
+ virtual void update_schedule (const ScheduleResult & result);
private:
- void update_failure_map (const Task & task,
- const Processor & processor);
+ void update_failure_map (const ScheduleResult & result);
bool check_for_existing_replicas (const Task & task,
- const Processor & processor);
+ const Processor & processor);
PROCESSOR_SET replica_processors (const Task & task);
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.cpp
index 233dfb08996..a212277ad52 100644
--- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.cpp
+++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.cpp
@@ -98,12 +98,11 @@ private:
};
void
-Packing_Scheduler::update_schedule (const Task & task,
- const Processor & processor)
+Packing_Scheduler::update_schedule (const ScheduleResult & result)
{
- this->Scheduler::update_schedule (task, processor);
+ this->Scheduler::update_schedule (result);
- this->update_task_groups (task, processor);
+ this->update_task_groups (result);
}
double
@@ -200,30 +199,29 @@ private:
};
void
-Packing_Scheduler::update_task_groups (const Task & task,
- const Processor & processor)
+Packing_Scheduler::update_task_groups (const ScheduleResult & result)
{
// add task to existing task groups
- TASK_LISTS & local_groups = task_groups_[processor];
+ TASK_LISTS & local_groups = task_groups_[result.processor];
- if (task.rank == 0)
+ if (result.task.rank == 0)
{
// if this is a primary check wether there are other
// primaries on this processors
if (!std::accumulate (local_groups.begin (),
local_groups.end (),
false,
- TaskListPrimaryAccumulator (task)))
+ TaskListPrimaryAccumulator (result.task)))
{
// create a new group if there is no primary yet
TASK_LIST new_list;
- new_list.push_back (task);
+ new_list.push_back (result.task);
local_groups.push_back (new_list);
}
}
else // if the task is a backup task
{
- this->add_backup (task, local_groups);
+ this->add_backup (result.task, local_groups);
}
TRACE (task_groups_);
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.h b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.h
index c700b126b11..0fd75c17ecc 100644
--- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.h
+++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Packing_Scheduler.h
@@ -35,12 +35,10 @@ public:
const Processor & processor);
protected:
- virtual void update_schedule (const Task & task,
- const Processor & processor);
+ virtual void update_schedule (const ScheduleResult & result);
private:
- void update_task_groups (const Task & task,
- const Processor & processor);
+ void update_task_groups (const ScheduleResult & result);
void add_backup (const Task & task,
TASK_LISTS & tg);
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.cpp
index 3d6d3403a27..b6b62c95a92 100644
--- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.cpp
+++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.cpp
@@ -43,9 +43,6 @@ Scheduler::operator () (const Task & task)
result.wcrt = wcrt;
result.processor = processor_it->first;
- // add the task to the schedule
- this->update_schedule (task, processor_it->first);
-
break;
}
} // end for
@@ -54,33 +51,31 @@ Scheduler::operator () (const Task & task)
}
void
-Scheduler::update_schedule (const Task & task,
- const Processor & processor)
+Scheduler::update_schedule (const ScheduleResult & result)
{
- schedule_[processor].push_back (task);
+ schedule_[result.processor].push_back (result.task);
- this->update_replica_groups (task, processor);
+ this->update_replica_groups (result);
}
void
-Scheduler::update_replica_groups (const Task & task,
- const Processor & processor)
+Scheduler::update_replica_groups (const ScheduleResult & result)
{
// create entry
- TASK_POSITION tp (processor,
- task);
+ TASK_POSITION tp (result.processor,
+ result.task);
// add entry to respective replica group
- if (task.rank == 0)
+ if (result.task.rank == 0)
{
// create a new group
TASK_POSITIONS group;
group.push_back (tp);
- replica_groups_[primary_name (task)] = group;
+ replica_groups_[primary_name (result.task)] = group;
}
else
{
- replica_groups_[primary_name (task)].push_back (tp);
+ replica_groups_[primary_name (result.task)].push_back (tp);
}
TRACE (replica_groups_);
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.h b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.h
index 0a4b4fc353b..66b82213b66 100644
--- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.h
+++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Scheduler.h
@@ -44,12 +44,10 @@ public:
// getter method for the schedule
SCHEDULE schedule () const;
-protected:
- virtual void update_schedule (const Task & task,
- const Processor & processor);
+ virtual void update_schedule (const ScheduleResult & result);
- void update_replica_groups (const Task & task,
- const Processor & processor);
+protected:
+ void update_replica_groups (const ScheduleResult & result);
protected:
SCHEDULE schedule_;