Intel® Threading Building Blocks

Shutting down task arena while enqueuing tasks


I'm having problems shutting down a task arena while there are tasks running into it. The specific problem I have is that I hit a TBB assert while I'm trying to shutdown and an already-existing task is trying to enque other work into the same arena.

The program has the following requirements with respect to the task arena:

Error using an Opencl Precompiled kernel

I am attempting to use TBB and an OpenCL enabled FPGA.  However, I am running into the following error:
"Error: Global work offset has been specified. That is an OpenCL 1.1 feature not supported by this version of the Intel(R) FPGA SDK for OpenCL(TM)
Failed to enqueue a kernel; error code: -56
TBB Warning: Exact exception propagation is requested by application but the linked library is built without support for it
terminate called after throwing an instance of 'tbb::captured_exception'
  what():  Unidentified exception
Aborted (core dumped)"

CMake: how to link against libtbb_preview rather than libtbb consistently?

What is the canonical way to tell a cmake-using library that normally links against libtbb to link against libtbb_preview instead?

Alternatively, is there a way to detect when a program or library tries to link to two incompatible versions of libtbb (like libtbb and libtbb_preview)?


Binary compiled with Clang++ 5.5.0 on GNU/Linux crashes [TBB 2018U1]

Hello there:

I am trying to compile my C++ 14 code with Clang++ 5.0.0 on GNU/Linux using TBB 2018 update 1. Everything works fine with g++ 7.2.0 and Intel C++ Compiler 18, but when I try to switch to Clang++, it compiles but it crashes when I try to run it. Even, a simple hello world appliccation crashes when link it with TBB.

I am using the following module for detecting TBB from my system with cmake 3.9.3. The error is the following:

When I run it from terminal:

Support for std::atomic to enable data race detection


We are trying to verify some of our programs that use TBB for data races using ThreadSanitizer data race detector ( However, currently we are seeing lots of data race reports inside of TBB library itself which makes further verification impossible. See below for examples. The root problem is that TBB uses home-grown implementation of atomic operations which is not understood by ThreadSanitizer.

undefined reference to ....tbb compilation error

THIS IS THE CODE (i use clion.... and cmake)


#include "tbb/parallel_for.h"
#include "tbb/task_scheduler_init.h"
#include <iostream>
#include <vector>

struct mytask {
    mytask(size_t n)
    void operator()() {
        for (int i=0;i<1000000;++i) {}  // Deliberately run slow
        std::cerr << "[" << _n << "]";
    size_t _n;

int main(int,char**) {

Subscribe to Intel® Threading Building Blocks