Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.
2452 Discussions

TBB 4.1 update 4 release is available on our OSS site.


TBB 4.1 Update 4 stable release is available for download on our site - tbb41_20130613oss.

Changes (w.r.t. Intel TBB 4.1 Update 3):

- Use /volatile:iso option with VS 2012 to disable extended
semantics for volatile variables.
- Various improvements in affinity_partitioner, scheduler,
tests, examples, makefiles.
- Concurrent_priority_queue class now supports initialization/assignment
via C++11 initializer list feature (std::initializer_list<T>).

Bugs fixed:

- Fixed more possible stalls in concurrent invocations of
task_arena::execute(), especially waiting for enqueued tasks.
- Fixed requested number of workers for task_arena(P,0).
- Fixed interoperability with Intel(R) VTune(TM) Amplifier XE in
case of using task_arena::enqueue() from a terminating thread.

Open-source contributions integrated:

- Type fixes, cleanups, and code beautification by Raf Schietekat.
- Improvements in atomic operations for big endian platforms
by Raf Schietekat.

0 Kudos
4 Replies

Hi, I just upgraded my version and...

Kirill Rogozhin (Intel) wrote:

- Use /volatile:iso option with VS 2012 to disable extended
semantics for volatile variables.

... did you mean vs 2008? There is no VS 2012 project file in the distribution.

Also, after conversion to VS2012, the exact same (incredibly annoying each time) error is still alive, as for the last 2 upgrades (but was not there before): 

2>atomic_support.obj : error LNK2026: module unsafe for SAFESEH image.
2>lock_byte.obj : error LNK2026: module unsafe for SAFESEH image.

The fix, as usual is to modify the converted project file to dectivate SAFESEH for the whole project.
The conversion can be automated, while this change cannot because you have to do it from VS to do it safely.

The other problem that was, again, already there since Update 2, is that the target name is not the same than the linked file name in Debug
which wouldn't be a problem if the project file wasn't also specifying that the target name should be used to find the .lib file, which makes 
dependencies look for a file that don't exist. Each time I upgrade, I have to change again these properties that again have to be changed
from VS and cannot be automated.

I think I reported these problems before but I apparently wasn't heard, certainly because most of the TBB team don't work on Windows with Visual Studio, which is legitimate but makes working with it in cross-platform context a big pain.

Do you have any plan to fix these problems?  (like switching to a meta build system so that these problems disappear) 
Because, it's really problematic when you need to upgrade TBB froms the source code.



Also, here is the VS2012 project file after fixing all the issues. In case you want to add it in the distribution so that I don't have to do the fixes manually again on the next Update.


could you submit it via page please?



Yes, done just right now.