• 2021.4
  • 09/27/2021
  • Public Content
Contents

Initializing and Terminating the Library

Intel® oneAPI Threading Building Blocks (oneTBB) automatically initializes the task scheduler. The initialization process is involved when a thread uses task scheduling services the first time, for example any parallel algorithm, flow graph or task group. The termination happens when the last such thread exits.

Explicit Library Finalization

oneTBB supports an explicit library termination as a preview feature. The
oneapi::tbb::finalize
function called with an instance of class
oneapi::tbb::task_scheduler_handle
blocks the calling thread until all worker threads implicitly created by the library have completed. If waiting for thread completion is not safe, e.g. may result in a deadlock or called inside a task, a parallel algorithm, or a flow graph node, the method fails.
If you know how many active
oneapi::tbb::task_scheduler_handle
instances exist in the program, it is recommended to call
oneapi::tbb::release
function on all but the last one, then call
oneapi::tbb::finalize
for the last instance.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.