- Request queues are now correctly managed by the ConcreteEnvironment
copy constructor and by the add_resource and remove_resource methods found in ConcreteHistory. - Scheduler now adds the requests in the queue when appropriate, and removes them when exhausted. - Still to implement the management of the state of requests depending on their position in the queue - Still to implement the way threads block depending on the state of their requests - step_forward now reuses some bunch of code taken from the prototype git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@824 3ecf2c5c-341e-0410-92b4-d18e462d057c
This commit is contained in:
parent
132db18b8c
commit
efe7dedd61
5 changed files with 360 additions and 105 deletions
|
@ -1455,21 +1455,29 @@ TextSimulation::update(const History& changed_history)
|
|||
p_stdout(oss.str());
|
||||
oss.str(string());
|
||||
|
||||
// FIXME this code causes a segfault because an invalid reference is
|
||||
// returned from get_request_queue()
|
||||
// const Environment::SubRequestQueue& req_queue =
|
||||
// env.get_request_queue(it->first);
|
||||
//
|
||||
// p_stdout(_("\t\t\tqueue: { "));
|
||||
//
|
||||
// for(unsigned int i = 0; i < req_queue.size(); ++i)
|
||||
// {
|
||||
// oss << req_queue[i]->get_request().get_thread().get_name() << " ~ ";
|
||||
// p_stdout(oss.str());
|
||||
// oss.str(string());
|
||||
// }
|
||||
//
|
||||
// p_stdout("}\n");
|
||||
|
||||
const Environment::SubRequestQueue& req_queue =
|
||||
env.get_request_queue(it->first);
|
||||
|
||||
p_stdout(_("\t\t\tqueue: { "));
|
||||
|
||||
for(unsigned int i = 0; i < req_queue.size(); ++i)
|
||||
{
|
||||
if (i == r.get_places())
|
||||
oss << " || ";
|
||||
else
|
||||
if (i != 0)
|
||||
oss << " ~ ";
|
||||
|
||||
if (req_queue[i]->get_state() == Request::state_allocated)
|
||||
oss << "[" << req_queue[i]->get_request().get_thread().get_name() << "]";
|
||||
else
|
||||
oss << req_queue[i]->get_request().get_thread().get_name();
|
||||
p_stdout(oss.str());
|
||||
oss.str(string());
|
||||
}
|
||||
|
||||
p_stdout(" }\n");
|
||||
}
|
||||
|
||||
p_stdout(_("PROCESSES:\n"));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue