stack trace at this moment only for main thread
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user