The TBB_DO_THREADING_TOOLS Macro
The macro TBB_DO_THREADING_TOOLS controls support for the following Intel threading analysis and debugging tools:
Intel Thread Profiler
Intel Thread Checker
More information is available at http://intel.com/software/products.
Define TBB_DO_THREADING_TOOLS as 1 to enable full support for these tools. The debug version of the library always has full support enabled.
Leave TBB_DO_THREADING_TOOLS undefined or 0 to enable top performance, at the expense of turning off some support for tools. In the current implementation, the only features affected are spin_mutex and spin_rw_mutex.
The Intel Thread Checker is a tool that helps you detect the potential for deadlock or race conditions in a program by observing it while it is running. The checker has special support for Threading Building Blocks, and by defining TBB_DO_THREADING_TOOLS for full support, you will get better diagnostics.
The checker works by recording when each thread sends or receives a synchronization message. For instance, when releasing a lock, a thread is effectively sending the message, “I’m done with the critical section,” whereas acquiring a lock receives that message.
The checker recognizes standard Windows API calls, but it can have difficulty with Threading Building Blocks without a little help; hence, TBB_DO_THREADING_TOOLS. Some of the Threading Building Blocks calls may be inlined, which would generally make them escape detection without this help.
The checker lets you decorate calls with ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access