- Fix Dynamic* constructor to add them objects into the correct
vector - Split push_back in constructors on two lines so the compiler warns us if returned vectors are temporary objects, or do not match the expected type git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@745 3ecf2c5c-341e-0410-92b4-d18e462d057c
This commit is contained in:
parent
301775debd
commit
0e79b163f3
|
@ -327,13 +327,7 @@ ConcreteHistory::add_thread(const Glib::ustring& name,
|
||||||
StaticProcess& parent_core = parent_process.get_core();
|
StaticProcess& parent_core = parent_process.get_core();
|
||||||
StaticThread* core = new StaticThread(name, parent_core, cpu_time, arrival_time, base_priority);
|
StaticThread* core = new StaticThread(name, parent_core, cpu_time, arrival_time, base_priority);
|
||||||
DynamicThread* thread = new DynamicThread(core, &parent_process);
|
DynamicThread* thread = new DynamicThread(core, &parent_process);
|
||||||
|
|
||||||
// modified 9/7/06 - ps
|
|
||||||
std::vector<StaticThread*>& sta_thr = parent_core.get_threads();
|
|
||||||
sta_thr.push_back(core);
|
|
||||||
std::vector<DynamicThread*>& dyn_thr = parent_process.get_dynamic_threads();
|
|
||||||
dyn_thr.push_back(thread);
|
|
||||||
|
|
||||||
notify_change();
|
notify_change();
|
||||||
return *thread;
|
return *thread;
|
||||||
}
|
}
|
||||||
|
@ -351,10 +345,7 @@ ConcreteHistory::add_request(Thread& owner,
|
||||||
StaticRequest* core = new StaticRequest(&owner_core, instant);
|
StaticRequest* core = new StaticRequest(&owner_core, instant);
|
||||||
DynamicRequest* req = new DynamicRequest(core, &dyn_owner);
|
DynamicRequest* req = new DynamicRequest(core, &dyn_owner);
|
||||||
|
|
||||||
// dyn_owner.get_requests().push_back(req);
|
dyn_owner.get_requests().push_back(req);
|
||||||
// modified 9/7/06 - ps
|
|
||||||
dyn_owner.get_dynamic_requests().push_back(req);
|
|
||||||
owner_core.get_requests().push_back(core);
|
|
||||||
|
|
||||||
notify_change();
|
notify_change();
|
||||||
return *req;
|
return *req;
|
||||||
|
@ -375,7 +366,7 @@ ConcreteHistory::add_subrequest(Request& request,
|
||||||
DynamicSubRequest* subreq = new DynamicSubRequest(core, &dyn_request);
|
DynamicSubRequest* subreq = new DynamicSubRequest(core, &dyn_request);
|
||||||
|
|
||||||
dyn_request.get_subrequests().push_back(subreq);
|
dyn_request.get_subrequests().push_back(subreq);
|
||||||
|
|
||||||
notify_change();
|
notify_change();
|
||||||
return *subreq;
|
return *subreq;
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,10 @@ DynamicRequest::DynamicRequest(StaticRequest *core,
|
||||||
{
|
{
|
||||||
assert(core != NULL);
|
assert(core != NULL);
|
||||||
assert(owner != NULL);
|
assert(owner != NULL);
|
||||||
owner->get_requests().push_back(this);
|
// Leave this line: it helps us with a compiler warning if
|
||||||
|
// the get_dynamic* method signature changes:
|
||||||
|
std::vector<DynamicRequest*>& siblings = owner->get_dynamic_requests();
|
||||||
|
siblings.push_back(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,10 @@ DynamicSubRequest::DynamicSubRequest(StaticSubRequest* core,
|
||||||
_queue_position(-1)
|
_queue_position(-1)
|
||||||
{
|
{
|
||||||
assert(core != NULL);
|
assert(core != NULL);
|
||||||
owner->get_subrequests().push_back(this);
|
// Leave this line: it helps us with a compiler warning if
|
||||||
|
// the get_dynamic* method signature changes:
|
||||||
|
std::vector<DynamicSubRequest*>& siblings = owner->get_dynamic_subrequests();
|
||||||
|
siblings.push_back(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,10 @@ DynamicThread::DynamicThread(StaticThread* core, DynamicProcess* parent)
|
||||||
: DynamicSchedulable(), _core(core), _state(state_future), _parent(parent),
|
: DynamicSchedulable(), _core(core), _state(state_future), _parent(parent),
|
||||||
_ran_for(0), _last_acquisition(-1), _last_release(-1)
|
_ran_for(0), _last_acquisition(-1), _last_release(-1)
|
||||||
{
|
{
|
||||||
parent->get_threads().push_back(this);
|
// Leave this line: it helps us with a compiler warning if
|
||||||
|
// the get_dynamic* method signature changes:
|
||||||
|
std::vector<DynamicThread*>& siblings = parent->get_dynamic_threads();
|
||||||
|
siblings.push_back(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
DynamicThread::DynamicThread(const DynamicThread &other) :
|
DynamicThread::DynamicThread(const DynamicThread &other) :
|
||||||
|
|
Loading…
Reference in New Issue