diff --git a/cpp/daal/src/threading/threading.cpp b/cpp/daal/src/threading/threading.cpp index b0c4f696ac6..8904414bf47 100644 --- a/cpp/daal/src/threading/threading.cpp +++ b/cpp/daal/src/threading/threading.cpp @@ -55,6 +55,7 @@ ThreaderEnvironment::~ThreaderEnvironment() std::cout << "delete task arena" << std::endl; delete reinterpret_cast(_taskArena); _taskArena = nullptr; + std::cout << "after delete task arena" << std::endl; } } void ThreaderEnvironment::setNumberOfThreads(size_t value) @@ -67,7 +68,9 @@ void ThreaderEnvironment::setNumberOfThreads(size_t value) } if (value > 1) { - _taskArena = reinterpret_cast(new tbb::task_arena(value)); + tbb::task_arena* arenaPtr = new tbb::task_arena(value); + arenaPtr->initialize(); + _taskArena = reinterpret_cast(arenaPtr); } _numberOfThreads = value; }