stack trace at this moment only for main thread

This commit is contained in:
2021-05-03 18:31:26 +02:00
parent 0829f965be
commit c17d43724a
2 changed files with 18 additions and 1 deletions

View File

@@ -10,12 +10,18 @@
using namespace std::chrono;
void MlPerfMon::turnOn() {
perfOn = true;
start_time = std::chrono::high_resolution_clock::now();
}
void MlPerfMon::add_method_call(const std::string &method) {
std::thread::id this_id = std::this_thread::get_id();
// only main thread is logged, to prevent mixing from others threads so lock not needed
if (main_thread_id != this_id)
return;
call_stack.push_back(method);
if (perfOn) {
@@ -29,6 +35,11 @@ void MlPerfMon::add_method_call(const std::string &method) {
}
void MlPerfMon::end_method_call() {
std::thread::id this_id = std::this_thread::get_id();
// only main thread is looged, to prevent mixing from others threads so lock not needed
if (main_thread_id != this_id)
return;
if (!call_stack.empty()){
call_stack.pop_back();
}