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 ...

Get Intel Threading Building Blocks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.