Skip to content

Commit

Permalink
Yielding and restarting profiler when task is renamed.
Browse files Browse the repository at this point in the history
  • Loading branch information
khuck committed Dec 5, 2019
1 parent 6252542 commit 346c66b
Showing 1 changed file with 24 additions and 12 deletions.
36 changes: 24 additions & 12 deletions src/apex/apex.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1114,13 +1114,19 @@ std::shared_ptr<task_wrapper> update_task(
if (apex_options::suspend() == true) { return nullptr; }
APEX_ASSERT(wrapper != nullptr);
task_identifier * id = task_identifier::get_task_id(timer_name);
// only have to do something if the ID has changed
if (id != wrapper->get_task_id()) {
wrapper->alias = id;
/*printf("%llu New alias: %s to %s\n", wrapper->guid,
wrapper->task_id->get_name().c_str(), timer_name.c_str());*/
}
if (wrapper->prof != nullptr) {
wrapper->prof->set_task_id(wrapper->get_task_id());
// If a profiler was already started, yield it and start a new one with the new ID
if (wrapper->prof != nullptr) {
yield(wrapper);
//wrapper->prof->set_task_id(wrapper->get_task_id());
wrapper->alias = id;
start(wrapper);
} else {
wrapper->alias = id;
}
printf("%llu New alias: %s to %s\n", wrapper->guid,
wrapper->task_id->get_name().c_str(), timer_name.c_str());
}
return wrapper;
}
Expand All @@ -1140,12 +1146,18 @@ std::shared_ptr<task_wrapper> update_task(
task_identifier * id = task_identifier::get_task_id(function_address);
wrapper = _new_task(id, UINTMAX_MAX, null_task_wrapper, instance);
} else {
/*printf("%llu New alias: %s", wrapper->guid, wrapper->task_id->get_name().c_str());
wrapper->task_id = task_identifier::get_task_id(function_address);
printf(" to %s\n", wrapper->task_id->get_name().c_str());*/
}
if (wrapper->prof != nullptr) {
wrapper->prof->set_task_id(wrapper->get_task_id());
task_identifier * id = task_identifier::get_task_id(function_address);
// only have to do something if the ID has changed
if (id != wrapper->get_task_id()) {
if (wrapper->prof != nullptr) {
yield(wrapper);
wrapper->alias = id;
//wrapper->prof->set_task_id(wrapper->get_task_id());
start(wrapper);
} else {
wrapper->alias = id;
}
}
}
return wrapper;
}
Expand Down

0 comments on commit 346c66b

Please sign in to comment.