diff --git a/modules/core/src/parallel_impl.cpp b/modules/core/src/parallel_impl.cpp index adf2bd39488cfeb0e5e81e7d18ba8f0a24125d33..90424a69901fd42d5d4ed205f97815e14bcf1a59 100644 --- a/modules/core/src/parallel_impl.cpp +++ b/modules/core/src/parallel_impl.cpp @@ -16,6 +16,8 @@ //#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_VERBOSE + 1 #include +#include + //#define CV_PROFILE_THREADS 64 //#define getTickCount getCPUTickCount // use this if getTickCount() calls are expensive (and getCPUTickCount() is accurate) @@ -276,6 +278,9 @@ public: void thread_body(); static void* thread_loop_wrapper(void* thread_object) { +#ifdef OPENCV_WITH_ITT + __itt_thread_set_name(cv::format("OpenCVThread-%03d", cv::utils::getThreadID()).c_str()); +#endif ((WorkerThread*)thread_object)->thread_body(); return 0; } diff --git a/modules/core/src/system.cpp b/modules/core/src/system.cpp index 699fecccfcd04a2be17af9564665c3e9f0ede33f..2ed05f12ee6763f36b95dc7f52d819d97e412da9 100644 --- a/modules/core/src/system.cpp +++ b/modules/core/src/system.cpp @@ -1888,6 +1888,15 @@ BOOL WINAPI DllMain(HINSTANCE, DWORD fdwReason, LPVOID lpReserved) namespace { + +#ifdef OPENCV_WITH_ITT +bool overrideThreadName() +{ + static bool param = utils::getConfigurationParameterBool("OPENCV_TRACE_ITT_SET_THREAD_NAME", false); + return param; +} +#endif + static int g_threadNum = 0; class ThreadID { public: @@ -1896,7 +1905,8 @@ public: id(CV_XADD(&g_threadNum, 1)) { #ifdef OPENCV_WITH_ITT - __itt_thread_set_name(cv::format("OpenCVThread-%03d", id).c_str()); + if (overrideThreadName()) + __itt_thread_set_name(cv::format("OpenCVThread-%03d", id).c_str()); #endif } };