A new major release of one of the most comprehensive and powerful C++ threading libraries was just announced. Intel Treading Building Blocks development team just released Intel® TBB 4.1. As usual, it is available in both commercial and OSS variants, for Windows*, Linux* and OS X*.
So go and download the new release from the product site.
What’s new in TBB 4.1:
Changes (w.r.t. TBB 4.0 Update 5):
- _WIN32_WINNT must be set to 0x0501 or greater in order to use TBB
on Microsoft* Windows*.
- parallel_deterministic_reduce template function is fully supported.
- TBB headers can be used with C++0x/C++11 mode (-std=c++0x) of GCC
and Intel(R) Compiler.
- C++11 std::make_exception_ptr is used where available, instead of
std::copy_exception from earlier C++0x implementations.
- Improvements in the TBB allocator to reduce extra memory consumption.
- Partial refactoring of the task scheduler data structures.
- TBB examples allow more flexible specification of the thread number,
including arithmetic and geometric progression.
- On Linux & Mac OS* X, pre-built TBB binaries do not yet support exact
exception propagation via C++11 exception_ptr. To prevent run time
errors, by default TBB headers disable exact exception propagation
even if the C++ implementation provides exception_ptr.
Community Preview Features:
- Added: class task_arena, for work submission by multiple application
threads with thread-independent control of concurrency level.
- Added: task_scheduler_observer can be created as local to a master
thread, to observe threads that work on behalf of that master.
Local observers may have new on_scheduler_leaving() callback.
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets(1137,5): warning MSB8012: TargetPath(E:\Projects\Games\NetRush\netrush_projects\ia32\Debug\tbb.dll) does not match the Linker's OutputFile property value (E:\Projects\Games\NetRush\netrush_projects\ia32\Debug\tbb_debug.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). 2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets(1139,5): warning MSB8012: TargetName(tbb) does not match the Linker's OutputFile property value (tbb_debug). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). 2>Link: 2> Creating library E:\Projects\Games\NetRush\netrush_projects\ia32\Debug\tbb.lib and object E:\Projects\Games\NetRush\netrush_projects\ia32\Debug\tbb.exp 2> tbb.vcxproj -> E:\Projects\Games\NetRush\netrush_projects\ia32\Debug\tbb.dll 2>FinalizeBuildStatus: 2> Deleting file "E:\Projects\Games\NetRush\netrush_projects\ia32\Debug\tbb.unsuccessfulbuild". 2> Touching "E:\Projects\Games\NetRush\netrush_projects\ia32\Debug\tbb.lastbuildstate". 2> 2>Build succeeded.I think it's a quick fix (that I'll do on my side) so I didn't want to make a full thread about it.