Committing TBB 2019 Update 4 source code
authortbbdev <inteltbbdevelopers@intel.com>
Fri, 1 Mar 2019 14:55:58 +0000 (17:55 +0300)
committertbbdev <inteltbbdevelopers@intel.com>
Fri, 1 Mar 2019 14:55:58 +0000 (17:55 +0300)
868 files changed:
CHANGES
Makefile
README.md
build/AIX.gcc.inc
build/AIX.inc
build/BSD.clang.inc
build/BSD.inc
build/FreeBSD.clang.inc
build/FreeBSD.gcc.inc
build/FreeBSD.inc
build/Makefile.rml
build/Makefile.tbb
build/Makefile.tbbmalloc
build/Makefile.tbbproxy
build/Makefile.test
build/OpenBSD.clang.inc
build/OpenBSD.inc
build/SunOS.gcc.inc
build/SunOS.inc
build/SunOS.suncc.inc
build/android.clang.inc
build/android.gcc.inc
build/android.icc.inc
build/android.inc
build/android.linux.inc
build/android.linux.launcher.sh
build/android.macos.inc
build/android.windows.inc
build/big_iron.inc
build/build.py
build/common.inc
build/common_rules.inc
build/detect.js
build/generate_tbbvars.bat
build/generate_tbbvars.sh
build/index.html
build/ios.clang.inc
build/ios.macos.inc
build/linux.clang.inc
build/linux.gcc.inc
build/linux.icc.inc
build/linux.inc
build/linux.pathcc.inc
build/linux.xl.inc
build/macos.clang.inc
build/macos.gcc.inc
build/macos.icc.inc
build/macos.inc
build/mic.icc.inc
build/mic.linux.inc
build/mic.linux.launcher.sh
build/mic.offload.inc
build/test_launcher.bat
build/test_launcher.sh
build/version_info_aix.sh
build/version_info_android.sh
build/version_info_linux.sh
build/version_info_macos.sh
build/version_info_sunos.sh
build/version_info_windows.js
build/vs2013/index.html
build/windows.cl.inc
build/windows.gcc.inc
build/windows.icl.inc
build/windows.inc
cmake/README.rst
cmake/TBBBuild.cmake
cmake/TBBGet.cmake
cmake/TBBMakeConfig.cmake
cmake/tbb_config_generator.cmake
cmake/templates/TBBConfig.cmake.in
cmake/templates/TBBConfigForSource.cmake.in
cmake/templates/TBBConfigVersion.cmake.in
doc/Release_Notes.txt
doc/copyright_brand_disclaimer_doxygen.txt
examples/GettingStarted/index.html
examples/GettingStarted/sub_string_finder/Makefile
examples/GettingStarted/sub_string_finder/Makefile.windows
examples/GettingStarted/sub_string_finder/readme.html
examples/GettingStarted/sub_string_finder/sub_string_finder.cpp
examples/GettingStarted/sub_string_finder/sub_string_finder_extended.cpp
examples/GettingStarted/sub_string_finder/sub_string_finder_pretty.cpp
examples/GettingStarted/sub_string_finder/xcode/sub_string_finder.xcodeproj/project.pbxproj
examples/Makefile
examples/common/copy_libraries.bat
examples/common/examples-common.inc
examples/common/gui/Makefile.gmake
examples/common/gui/Makefile.win
examples/common/gui/convideo.cpp
examples/common/gui/d2dvideo.cpp
examples/common/gui/dxcheck.bat
examples/common/gui/gdivideo.cpp
examples/common/gui/macvideo.cpp
examples/common/gui/video.h
examples/common/gui/winvideo.h
examples/common/gui/xcode/tbbExample/OpenGLView.h
examples/common/gui/xcode/tbbExample/OpenGLView.m
examples/common/gui/xcode/tbbExample/main.m
examples/common/gui/xcode/tbbExample/tbbAppDelegate.h
examples/common/gui/xcode/tbbExample/tbbAppDelegate.m
examples/common/gui/xcode/tbbExample/tbbExample-Info.plist
examples/common/gui/xcode/tbbExample/tbbExample-Prefix.pch
examples/common/gui/xvideo.cpp
examples/common/index.html
examples/common/utility/fast_random.h
examples/common/utility/utility.h
examples/concurrent_hash_map/count_strings/Makefile
examples/concurrent_hash_map/count_strings/Makefile.windows
examples/concurrent_hash_map/count_strings/count_strings.cpp
examples/concurrent_hash_map/count_strings/readme.html
examples/concurrent_hash_map/count_strings/xcode/count_strings.xcodeproj/project.pbxproj
examples/concurrent_hash_map/index.html
examples/concurrent_priority_queue/index.html
examples/concurrent_priority_queue/shortpath/Makefile
examples/concurrent_priority_queue/shortpath/Makefile.windows
examples/concurrent_priority_queue/shortpath/readme.html
examples/concurrent_priority_queue/shortpath/shortpath.cpp
examples/concurrent_priority_queue/shortpath/xcode/shortpath.xcodeproj/project.pbxproj
examples/graph/binpack/Makefile
examples/graph/binpack/Makefile.windows
examples/graph/binpack/binpack.cpp
examples/graph/binpack/readme.html
examples/graph/binpack/xcode/binpack.xcodeproj/project.pbxproj
examples/graph/cholesky/Makefile
examples/graph/cholesky/Makefile.windows
examples/graph/cholesky/cholesky.cpp
examples/graph/cholesky/init.cpp
examples/graph/cholesky/readme.html
examples/graph/cholesky/xcode/cholesky.xcodeproj/project.pbxproj
examples/graph/cholesky/xcode/cholesky.xcodeproj/xcshareddata/xcschemes/Cholesky.xcscheme [new file with mode: 0644]
examples/graph/dining_philosophers/Makefile
examples/graph/dining_philosophers/Makefile.windows
examples/graph/dining_philosophers/dining_philosophers.cpp
examples/graph/dining_philosophers/readme.html
examples/graph/dining_philosophers/xcode/dining_philosophers.xcodeproj/project.pbxproj
examples/graph/fgbzip2/Makefile
examples/graph/fgbzip2/Makefile.windows
examples/graph/fgbzip2/blocksort.cpp
examples/graph/fgbzip2/bzlib.cpp
examples/graph/fgbzip2/bzlib.h
examples/graph/fgbzip2/bzlib_private.h
examples/graph/fgbzip2/compress.cpp
examples/graph/fgbzip2/crctable.cpp
examples/graph/fgbzip2/decompress.cpp
examples/graph/fgbzip2/fgbzip2.cpp
examples/graph/fgbzip2/huffman.cpp
examples/graph/fgbzip2/randtable.cpp
examples/graph/fgbzip2/readme.html
examples/graph/fgbzip2/xcode/fgbzip2.xcodeproj/project.pbxproj
examples/graph/index.html
examples/graph/logic_sim/D_latch.h
examples/graph/logic_sim/Makefile
examples/graph/logic_sim/Makefile.windows
examples/graph/logic_sim/basics.h
examples/graph/logic_sim/four_bit_adder.h
examples/graph/logic_sim/one_bit_adder.h
examples/graph/logic_sim/readme.html
examples/graph/logic_sim/test_all.cpp
examples/graph/logic_sim/two_bit_adder.h
examples/graph/matmult/Makefile
examples/graph/matmult/Makefile.windows
examples/graph/matmult/matmult.cpp
examples/graph/matmult/readme.html
examples/graph/som/Makefile
examples/graph/som/Makefile.windows
examples/graph/som/readme.html
examples/graph/som/som.cpp
examples/graph/som/som.h
examples/graph/som/som_graph.cpp
examples/graph/som/xcode/som.xcodeproj/project.pbxproj
examples/graph/stereo/Makefile
examples/graph/stereo/Makefile.windows
examples/graph/stereo/imageEffects.cl
examples/graph/stereo/lodepng.cpp
examples/graph/stereo/lodepng.h
examples/graph/stereo/readme.html
examples/graph/stereo/stereo.cpp
examples/graph/stereo/utils.h
examples/graph/stereo/xcode/stereo.xcodeproj/project.pbxproj
examples/index.html
examples/parallel_do/index.html
examples/parallel_do/parallel_preorder/Graph.cpp
examples/parallel_do/parallel_preorder/Graph.h
examples/parallel_do/parallel_preorder/Makefile
examples/parallel_do/parallel_preorder/Makefile.windows
examples/parallel_do/parallel_preorder/Matrix.h
examples/parallel_do/parallel_preorder/main.cpp
examples/parallel_do/parallel_preorder/parallel_preorder.cpp
examples/parallel_do/parallel_preorder/readme.html
examples/parallel_do/parallel_preorder/xcode/parallel_preorder.xcodeproj/project.pbxproj
examples/parallel_for/game_of_life/Makefile
examples/parallel_for/game_of_life/Makefile.windows
examples/parallel_for/game_of_life/msvs/resource.h
examples/parallel_for/game_of_life/readme.html
examples/parallel_for/game_of_life/src/AssemblyInfo.cpp
examples/parallel_for/game_of_life/src/Board.h
examples/parallel_for/game_of_life/src/Evolution.cpp
examples/parallel_for/game_of_life/src/Evolution.h
examples/parallel_for/game_of_life/src/Form1.h
examples/parallel_for/game_of_life/src/Game_of_life.cpp
examples/parallel_for/game_of_life/src/Update_state.cpp
examples/parallel_for/game_of_life/xcode/game_of_life.xcodeproj/project.pbxproj
examples/parallel_for/index.html
examples/parallel_for/polygon_overlay/Makefile
examples/parallel_for/polygon_overlay/Makefile.windows
examples/parallel_for/polygon_overlay/msvs/resource.h
examples/parallel_for/polygon_overlay/polymain.cpp
examples/parallel_for/polygon_overlay/polymain.h
examples/parallel_for/polygon_overlay/polyover.cpp
examples/parallel_for/polygon_overlay/polyover.h
examples/parallel_for/polygon_overlay/pover_global.h
examples/parallel_for/polygon_overlay/pover_video.cpp
examples/parallel_for/polygon_overlay/pover_video.h
examples/parallel_for/polygon_overlay/readme.html
examples/parallel_for/polygon_overlay/rpolygon.h
examples/parallel_for/seismic/Makefile
examples/parallel_for/seismic/Makefile.windows
examples/parallel_for/seismic/main.cpp
examples/parallel_for/seismic/msvs/resource.h
examples/parallel_for/seismic/readme.html
examples/parallel_for/seismic/seismic_video.cpp
examples/parallel_for/seismic/seismic_video.h
examples/parallel_for/seismic/universe.cpp
examples/parallel_for/seismic/universe.h
examples/parallel_for/seismic/xcode/seismic.xcodeproj/project.pbxproj
examples/parallel_for/tachyon/Makefile
examples/parallel_for/tachyon/Makefile.windows
examples/parallel_for/tachyon/msvs/resource.h
examples/parallel_for/tachyon/msvs/win8ui/App.xaml.cpp
examples/parallel_for/tachyon/msvs/win8ui/App.xaml.h
examples/parallel_for/tachyon/msvs/win8ui/DirectXBase.cpp
examples/parallel_for/tachyon/msvs/win8ui/DirectXBase.h
examples/parallel_for/tachyon/msvs/win8ui/DirectXPage.xaml.cpp
examples/parallel_for/tachyon/msvs/win8ui/DirectXPage.xaml.h
examples/parallel_for/tachyon/msvs/win8ui/copy_libraries_and_assets.bat
examples/parallel_for/tachyon/msvs/win8ui/pch.h
examples/parallel_for/tachyon/msvs/win8ui/tbbTachyonRenderer.cpp
examples/parallel_for/tachyon/msvs/win8ui/tbbTachyonRenderer.h
examples/parallel_for/tachyon/readme.html
examples/parallel_for/tachyon/src/api.cpp
examples/parallel_for/tachyon/src/api.h
examples/parallel_for/tachyon/src/apigeom.cpp
examples/parallel_for/tachyon/src/apitrigeom.cpp
examples/parallel_for/tachyon/src/apitrigeom.h
examples/parallel_for/tachyon/src/bndbox.cpp
examples/parallel_for/tachyon/src/bndbox.h
examples/parallel_for/tachyon/src/box.cpp
examples/parallel_for/tachyon/src/box.h
examples/parallel_for/tachyon/src/camera.cpp
examples/parallel_for/tachyon/src/camera.h
examples/parallel_for/tachyon/src/coordsys.cpp
examples/parallel_for/tachyon/src/coordsys.h
examples/parallel_for/tachyon/src/cylinder.cpp
examples/parallel_for/tachyon/src/cylinder.h
examples/parallel_for/tachyon/src/extvol.cpp
examples/parallel_for/tachyon/src/extvol.h
examples/parallel_for/tachyon/src/global.cpp
examples/parallel_for/tachyon/src/global.h
examples/parallel_for/tachyon/src/grid.cpp
examples/parallel_for/tachyon/src/grid.h
examples/parallel_for/tachyon/src/imageio.cpp
examples/parallel_for/tachyon/src/imageio.h
examples/parallel_for/tachyon/src/imap.cpp
examples/parallel_for/tachyon/src/imap.h
examples/parallel_for/tachyon/src/intersect.cpp
examples/parallel_for/tachyon/src/intersect.h
examples/parallel_for/tachyon/src/jpeg.cpp
examples/parallel_for/tachyon/src/jpeg.h
examples/parallel_for/tachyon/src/light.cpp
examples/parallel_for/tachyon/src/light.h
examples/parallel_for/tachyon/src/machine.h
examples/parallel_for/tachyon/src/macros.h
examples/parallel_for/tachyon/src/main.cpp
examples/parallel_for/tachyon/src/objbound.cpp
examples/parallel_for/tachyon/src/objbound.h
examples/parallel_for/tachyon/src/parse.cpp
examples/parallel_for/tachyon/src/parse.h
examples/parallel_for/tachyon/src/plane.cpp
examples/parallel_for/tachyon/src/plane.h
examples/parallel_for/tachyon/src/ppm.cpp
examples/parallel_for/tachyon/src/ppm.h
examples/parallel_for/tachyon/src/pthread.cpp
examples/parallel_for/tachyon/src/pthread_w.h
examples/parallel_for/tachyon/src/quadric.cpp
examples/parallel_for/tachyon/src/quadric.h
examples/parallel_for/tachyon/src/render.cpp
examples/parallel_for/tachyon/src/render.h
examples/parallel_for/tachyon/src/ring.cpp
examples/parallel_for/tachyon/src/ring.h
examples/parallel_for/tachyon/src/shade.cpp
examples/parallel_for/tachyon/src/shade.h
examples/parallel_for/tachyon/src/sphere.cpp
examples/parallel_for/tachyon/src/sphere.h
examples/parallel_for/tachyon/src/tachyon_video.cpp
examples/parallel_for/tachyon/src/tachyon_video.h
examples/parallel_for/tachyon/src/texture.cpp
examples/parallel_for/tachyon/src/texture.h
examples/parallel_for/tachyon/src/tgafile.cpp
examples/parallel_for/tachyon/src/tgafile.h
examples/parallel_for/tachyon/src/trace.h
examples/parallel_for/tachyon/src/trace.serial.cpp
examples/parallel_for/tachyon/src/trace.simple.cpp
examples/parallel_for/tachyon/src/trace.tbb.cpp
examples/parallel_for/tachyon/src/trace.tbb1d.cpp
examples/parallel_for/tachyon/src/trace_rest.cpp
examples/parallel_for/tachyon/src/triangle.cpp
examples/parallel_for/tachyon/src/triangle.h
examples/parallel_for/tachyon/src/types.h
examples/parallel_for/tachyon/src/ui.cpp
examples/parallel_for/tachyon/src/ui.h
examples/parallel_for/tachyon/src/util.cpp
examples/parallel_for/tachyon/src/util.h
examples/parallel_for/tachyon/src/vector.cpp
examples/parallel_for/tachyon/src/vector.h
examples/parallel_for/tachyon/src/vol.cpp
examples/parallel_for/tachyon/src/vol.h
examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/project.pbxproj
examples/parallel_reduce/convex_hull/Makefile
examples/parallel_reduce/convex_hull/Makefile.windows
examples/parallel_reduce/convex_hull/convex_hull.h
examples/parallel_reduce/convex_hull/convex_hull_bench.cpp
examples/parallel_reduce/convex_hull/convex_hull_sample.cpp
examples/parallel_reduce/convex_hull/readme.html
examples/parallel_reduce/convex_hull/xcode/convex_hull.xcodeproj/project.pbxproj
examples/parallel_reduce/index.html
examples/parallel_reduce/primes/Makefile
examples/parallel_reduce/primes/Makefile.windows
examples/parallel_reduce/primes/main.cpp
examples/parallel_reduce/primes/primes.cpp
examples/parallel_reduce/primes/primes.h
examples/parallel_reduce/primes/readme.html
examples/parallel_reduce/primes/xcode/primes.xcodeproj/project.pbxproj
examples/pipeline/index.html
examples/pipeline/square/Makefile
examples/pipeline/square/Makefile.windows
examples/pipeline/square/gen_input.cpp
examples/pipeline/square/readme.html
examples/pipeline/square/square.cpp
examples/pipeline/square/xcode/square.xcodeproj/project.pbxproj
examples/task/index.html
examples/task/tree_sum/Makefile
examples/task/tree_sum/Makefile.windows
examples/task/tree_sum/OptimizedParallelSumTree.cpp
examples/task/tree_sum/SerialSumTree.cpp
examples/task/tree_sum/SimpleParallelSumTree.cpp
examples/task/tree_sum/TreeMaker.h
examples/task/tree_sum/common.h
examples/task/tree_sum/main.cpp
examples/task/tree_sum/readme.html
examples/task/tree_sum/xcode/tree_sum.xcodeproj/project.pbxproj
examples/task_arena/fractal/Makefile
examples/task_arena/fractal/Makefile.windows
examples/task_arena/fractal/fractal.cpp
examples/task_arena/fractal/fractal.h
examples/task_arena/fractal/fractal_video.h
examples/task_arena/fractal/main.cpp
examples/task_arena/fractal/msvs/resource.h
examples/task_arena/fractal/readme.html
examples/task_arena/fractal/xcode/fractal.xcodeproj/project.pbxproj
examples/task_arena/index.html
examples/task_group/index.html
examples/task_group/sudoku/Makefile
examples/task_group/sudoku/Makefile.windows
examples/task_group/sudoku/readme.html
examples/task_group/sudoku/sudoku.cpp
examples/task_group/sudoku/xcode/sudoku.xcodeproj/project.pbxproj
examples/test_all/fibonacci/Fibonacci.cpp
examples/test_all/fibonacci/Makefile
examples/test_all/fibonacci/Makefile.windows
examples/test_all/fibonacci/readme.html
examples/test_all/fibonacci/xcode/fibonacci.xcodeproj/project.pbxproj
examples/test_all/index.html
include/index.html
include/serial/tbb/parallel_for.h
include/serial/tbb/tbb_annotate.h
include/tbb/aggregator.h
include/tbb/aligned_space.h
include/tbb/atomic.h
include/tbb/blocked_range.h
include/tbb/blocked_range2d.h
include/tbb/blocked_range3d.h
include/tbb/blocked_rangeNd.h
include/tbb/cache_aligned_allocator.h
include/tbb/combinable.h
include/tbb/compat/condition_variable
include/tbb/compat/ppl.h
include/tbb/compat/thread
include/tbb/compat/tuple
include/tbb/concurrent_hash_map.h
include/tbb/concurrent_lru_cache.h
include/tbb/concurrent_priority_queue.h
include/tbb/concurrent_queue.h
include/tbb/concurrent_unordered_map.h
include/tbb/concurrent_unordered_set.h
include/tbb/concurrent_vector.h
include/tbb/critical_section.h
include/tbb/enumerable_thread_specific.h
include/tbb/flow_graph.h
include/tbb/flow_graph_abstractions.h
include/tbb/flow_graph_opencl_node.h
include/tbb/gfx_factory.h
include/tbb/global_control.h
include/tbb/index.html
include/tbb/internal/_aggregator_impl.h
include/tbb/internal/_allocator_traits.h [new file with mode: 0644]
include/tbb/internal/_concurrent_queue_impl.h
include/tbb/internal/_concurrent_unordered_impl.h
include/tbb/internal/_flow_graph_async_msg_impl.h
include/tbb/internal/_flow_graph_body_impl.h
include/tbb/internal/_flow_graph_cache_impl.h
include/tbb/internal/_flow_graph_impl.h
include/tbb/internal/_flow_graph_indexer_impl.h
include/tbb/internal/_flow_graph_item_buffer_impl.h
include/tbb/internal/_flow_graph_join_impl.h
include/tbb/internal/_flow_graph_node_impl.h
include/tbb/internal/_flow_graph_streaming_node.h
include/tbb/internal/_flow_graph_tagged_buffer_impl.h
include/tbb/internal/_flow_graph_trace_impl.h
include/tbb/internal/_flow_graph_types_impl.h
include/tbb/internal/_mutex_padding.h
include/tbb/internal/_range_iterator.h
include/tbb/internal/_tbb_hash_compare_impl.h
include/tbb/internal/_tbb_strings.h
include/tbb/internal/_tbb_trace_impl.h
include/tbb/internal/_tbb_windef.h
include/tbb/internal/_template_helpers.h
include/tbb/internal/_x86_eliding_mutex_impl.h
include/tbb/internal/_x86_rtm_rw_mutex_impl.h
include/tbb/iterators.h
include/tbb/machine/gcc_arm.h
include/tbb/machine/gcc_generic.h
include/tbb/machine/gcc_ia32_common.h
include/tbb/machine/gcc_itsx.h
include/tbb/machine/ibm_aix51.h
include/tbb/machine/icc_generic.h
include/tbb/machine/linux_common.h
include/tbb/machine/linux_ia32.h
include/tbb/machine/linux_ia64.h
include/tbb/machine/linux_intel64.h
include/tbb/machine/mac_ppc.h
include/tbb/machine/macos_common.h
include/tbb/machine/mic_common.h
include/tbb/machine/msvc_armv7.h
include/tbb/machine/msvc_ia32_common.h
include/tbb/machine/sunos_sparc.h
include/tbb/machine/windows_api.h
include/tbb/machine/windows_ia32.h
include/tbb/machine/windows_intel64.h
include/tbb/memory_pool.h
include/tbb/mutex.h
include/tbb/null_mutex.h
include/tbb/null_rw_mutex.h
include/tbb/parallel_do.h
include/tbb/parallel_for.h
include/tbb/parallel_for_each.h
include/tbb/parallel_invoke.h
include/tbb/parallel_reduce.h
include/tbb/parallel_scan.h
include/tbb/parallel_sort.h
include/tbb/parallel_while.h
include/tbb/partitioner.h
include/tbb/pipeline.h
include/tbb/queuing_mutex.h
include/tbb/queuing_rw_mutex.h
include/tbb/reader_writer_lock.h
include/tbb/recursive_mutex.h
include/tbb/runtime_loader.h
include/tbb/scalable_allocator.h
include/tbb/spin_mutex.h
include/tbb/spin_rw_mutex.h
include/tbb/task.h
include/tbb/task_arena.h
include/tbb/task_group.h
include/tbb/task_scheduler_init.h
include/tbb/task_scheduler_observer.h
include/tbb/tbb.h
include/tbb/tbb_allocator.h
include/tbb/tbb_config.h
include/tbb/tbb_disable_exceptions.h
include/tbb/tbb_exception.h
include/tbb/tbb_machine.h
include/tbb/tbb_profiling.h
include/tbb/tbb_stddef.h
include/tbb/tbb_thread.h
include/tbb/tbbmalloc_proxy.h
include/tbb/tick_count.h
index.html
jni/Android.mk
jni/Application.mk
python/Makefile
python/TBB.py
python/index.html
python/rml/Makefile
python/rml/ipc_server.cpp
python/rml/ipc_utils.cpp
python/rml/ipc_utils.h
python/setup.py
python/tbb/__init__.py
python/tbb/__main__.py
python/tbb/api.i
python/tbb/pool.py
python/tbb/test.py
src/Makefile
src/index.html
src/old/concurrent_queue_v2.cpp
src/old/concurrent_queue_v2.h
src/old/concurrent_vector_v2.cpp
src/old/concurrent_vector_v2.h
src/old/spin_rw_mutex_v2.cpp
src/old/spin_rw_mutex_v2.h
src/old/task_v2.cpp
src/old/test_concurrent_queue_v2.cpp
src/old/test_concurrent_vector_v2.cpp
src/old/test_mutex_v2.cpp
src/old/test_task_scheduler_observer_v3.cpp
src/perf/coarse_grained_raii_lru_cache.h
src/perf/cpq_pdes.cpp
src/perf/fibonacci_impl_tbb.cpp
src/perf/perf.cpp
src/perf/perf.h
src/perf/perf_sched.cpp
src/perf/run_statistics.sh
src/perf/statistics.cpp
src/perf/statistics.h
src/perf/statistics_xml.h
src/perf/time_async_return.cpp
src/perf/time_cpq_throughput_test.cpp
src/perf/time_fibonacci_cutoff.cpp
src/perf/time_framework.h
src/perf/time_hash_map.cpp
src/perf/time_hash_map_fill.cpp
src/perf/time_hash_map_fill.html
src/perf/time_locked_work.cpp
src/perf/time_lru_cache_throughput.cpp
src/perf/time_parallel_for_each.cpp
src/perf/time_sandbox.h
src/perf/time_split_node.cpp
src/perf/time_vector.cpp
src/rml/client/index.html
src/rml/client/library_assert.h
src/rml/client/omp_dynamic_link.cpp
src/rml/client/omp_dynamic_link.h
src/rml/client/rml_factory.h
src/rml/client/rml_omp.cpp
src/rml/client/rml_tbb.cpp
src/rml/include/index.html
src/rml/include/rml_base.h
src/rml/include/rml_omp.h
src/rml/include/rml_tbb.h
src/rml/index.html
src/rml/perfor/omp_nested.cpp
src/rml/perfor/omp_simple.cpp
src/rml/perfor/tbb_multi_omp.cpp
src/rml/perfor/tbb_simple.cpp
src/rml/perfor/thread_level.h
src/rml/server/index.html
src/rml/server/irml.rc
src/rml/server/job_automaton.h
src/rml/server/lin-rml-export.def
src/rml/server/rml_server.cpp
src/rml/server/thread_monitor.h
src/rml/server/wait_counter.h
src/rml/server/win32-rml-export.def
src/rml/server/win64-rml-export.def
src/rml/test/rml_omp_stub.cpp
src/rml/test/test_job_automaton.cpp
src/rml/test/test_rml_mixed.cpp
src/rml/test/test_rml_omp.cpp
src/rml/test/test_rml_omp_c_linkage.c
src/rml/test/test_rml_tbb.cpp
src/rml/test/test_server.h
src/rml/test/test_thread_monitor.cpp
src/tbb/arena.cpp
src/tbb/arena.h
src/tbb/cache_aligned_allocator.cpp
src/tbb/cilk-tbb-interop.h
src/tbb/concurrent_hash_map.cpp
src/tbb/concurrent_monitor.cpp
src/tbb/concurrent_monitor.h
src/tbb/concurrent_queue.cpp
src/tbb/concurrent_vector.cpp
src/tbb/condition_variable.cpp
src/tbb/critical_section.cpp
src/tbb/custom_scheduler.h
src/tbb/dynamic_link.cpp
src/tbb/dynamic_link.h
src/tbb/governor.cpp
src/tbb/governor.h
src/tbb/ia32-masm/atomic_support.asm
src/tbb/ia32-masm/itsx.asm
src/tbb/ia32-masm/lock_byte.asm
src/tbb/ia64-gas/atomic_support.s
src/tbb/ia64-gas/ia64_misc.s
src/tbb/ia64-gas/lock_byte.s
src/tbb/ia64-gas/log2.s
src/tbb/ia64-gas/pause.s
src/tbb/ibm_aix51/atomic_support.c
src/tbb/index.html
src/tbb/intel64-masm/atomic_support.asm
src/tbb/intel64-masm/intel64_misc.asm
src/tbb/intel64-masm/itsx.asm
src/tbb/intrusive_list.h
src/tbb/itt_notify.cpp
src/tbb/itt_notify.h
src/tbb/lin32-tbb-export.def
src/tbb/lin32-tbb-export.lst
src/tbb/lin64-tbb-export.def
src/tbb/lin64-tbb-export.lst
src/tbb/lin64ipf-tbb-export.def
src/tbb/lin64ipf-tbb-export.lst
src/tbb/mac32-tbb-export.def
src/tbb/mac32-tbb-export.lst
src/tbb/mac64-tbb-export.def
src/tbb/mac64-tbb-export.lst
src/tbb/mailbox.h
src/tbb/market.cpp
src/tbb/market.h
src/tbb/mutex.cpp
src/tbb/observer_proxy.cpp
src/tbb/observer_proxy.h
src/tbb/pipeline.cpp
src/tbb/private_server.cpp
src/tbb/queuing_mutex.cpp
src/tbb/queuing_rw_mutex.cpp
src/tbb/reader_writer_lock.cpp
src/tbb/recursive_mutex.cpp
src/tbb/scheduler.cpp
src/tbb/scheduler.h
src/tbb/scheduler_common.h
src/tbb/scheduler_utility.h
src/tbb/semaphore.cpp
src/tbb/semaphore.h
src/tbb/spin_mutex.cpp
src/tbb/spin_rw_mutex.cpp
src/tbb/task.cpp
src/tbb/task_group_context.cpp
src/tbb/task_stream.h
src/tbb/task_stream_extended.h
src/tbb/tbb_assert_impl.h
src/tbb/tbb_environment.h
src/tbb/tbb_main.cpp
src/tbb/tbb_main.h
src/tbb/tbb_misc.cpp
src/tbb/tbb_misc.h
src/tbb/tbb_misc_ex.cpp
src/tbb/tbb_resource.rc
src/tbb/tbb_statistics.cpp
src/tbb/tbb_statistics.h
src/tbb/tbb_thread.cpp
src/tbb/tbb_version.h
src/tbb/tls.h
src/tbb/tools_api/disable_warnings.h
src/tbb/tools_api/ittnotify.h
src/tbb/tools_api/ittnotify_config.h
src/tbb/tools_api/ittnotify_static.c
src/tbb/tools_api/ittnotify_static.h
src/tbb/tools_api/ittnotify_types.h
src/tbb/tools_api/legacy/ittnotify.h
src/tbb/win32-tbb-export.def
src/tbb/win32-tbb-export.lst
src/tbb/win64-gcc-tbb-export.def
src/tbb/win64-gcc-tbb-export.lst
src/tbb/win64-tbb-export.def
src/tbb/win64-tbb-export.lst
src/tbb/winrt-tbb-export.lst
src/tbb/x86_rtm_rw_mutex.cpp
src/tbbmalloc/Customize.h
src/tbbmalloc/MapMemory.h
src/tbbmalloc/Statistics.h
src/tbbmalloc/Synchronize.h
src/tbbmalloc/TypeDefinitions.h
src/tbbmalloc/backend.cpp
src/tbbmalloc/backref.cpp
src/tbbmalloc/frontend.cpp
src/tbbmalloc/index.html
src/tbbmalloc/large_objects.cpp
src/tbbmalloc/lin32-proxy-export.def
src/tbbmalloc/lin32-tbbmalloc-export.def
src/tbbmalloc/lin64-proxy-export.def
src/tbbmalloc/lin64-tbbmalloc-export.def
src/tbbmalloc/lin64ipf-proxy-export.def
src/tbbmalloc/lin64ipf-tbbmalloc-export.def
src/tbbmalloc/mac32-tbbmalloc-export.def
src/tbbmalloc/mac64-tbbmalloc-export.def
src/tbbmalloc/proxy.cpp
src/tbbmalloc/proxy.h
src/tbbmalloc/proxy_overload_osx.h
src/tbbmalloc/shared_utils.h
src/tbbmalloc/tbb_function_replacement.cpp
src/tbbmalloc/tbb_function_replacement.h
src/tbbmalloc/tbbmalloc.cpp
src/tbbmalloc/tbbmalloc.rc
src/tbbmalloc/tbbmalloc_internal.h
src/tbbmalloc/tbbmalloc_internal_api.h
src/tbbmalloc/win32-gcc-tbbmalloc-export.def
src/tbbmalloc/win32-tbbmalloc-export.def
src/tbbmalloc/win64-gcc-tbbmalloc-export.def
src/tbbmalloc/win64-tbbmalloc-export.def
src/tbbproxy/tbbproxy-windows.asm
src/tbbproxy/tbbproxy.cpp
src/test/harness.h
src/test/harness_allocator.h
src/test/harness_allocator_overload.h
src/test/harness_assert.h
src/test/harness_bad_expr.h
src/test/harness_barrier.h
src/test/harness_checktype.h
src/test/harness_concurrency.h
src/test/harness_concurrency_tracker.h
src/test/harness_cpu.h
src/test/harness_defs.h
src/test/harness_dynamic_libs.h
src/test/harness_eh.h
src/test/harness_fp.h
src/test/harness_graph.h
src/test/harness_inject_scheduler.h
src/test/harness_iterator.h
src/test/harness_m128.h
src/test/harness_memory.h
src/test/harness_mic.h
src/test/harness_preload.h
src/test/harness_report.h
src/test/harness_runtime_loader.h
src/test/harness_state_trackable.h
src/test/harness_task.h
src/test/harness_tbb_independence.h
src/test/harness_test_cases_framework.h
src/test/harness_tls.h
src/test/harness_tsx.h
src/test/test_ScalableAllocator.cpp
src/test/test_ScalableAllocator_STL.cpp
src/test/test_aggregator.cpp
src/test/test_aligned_space.cpp
src/test/test_allocator.h
src/test/test_allocator_STL.h
src/test/test_assembly.cpp
src/test/test_async_msg.cpp
src/test/test_async_node.cpp
src/test/test_atomic.cpp
src/test/test_blocked_range.cpp
src/test/test_blocked_range2d.cpp
src/test/test_blocked_range3d.cpp
src/test/test_blocked_rangeNd.cpp
src/test/test_broadcast_node.cpp
src/test/test_buffer_node.cpp
src/test/test_cache_aligned_allocator.cpp
src/test/test_cache_aligned_allocator_STL.cpp
src/test/test_cilk_common.h
src/test/test_cilk_dynamic_load.cpp
src/test/test_cilk_interop.cpp
src/test/test_combinable.cpp
src/test/test_composite_node.cpp
src/test/test_concurrent_hash_map.cpp
src/test/test_concurrent_lru_cache.cpp
src/test/test_concurrent_monitor.cpp
src/test/test_concurrent_priority_queue.cpp
src/test/test_concurrent_queue.cpp
src/test/test_concurrent_queue_whitebox.cpp
src/test/test_concurrent_unordered_common.h
src/test/test_concurrent_unordered_map.cpp
src/test/test_concurrent_unordered_set.cpp
src/test/test_concurrent_vector.cpp
src/test/test_condition_variable.h
src/test/test_container_move_support.h
src/test/test_continue_node.cpp
src/test/test_critical_section.cpp
src/test/test_dynamic_link.cpp
src/test/test_eh_algorithms.cpp
src/test/test_eh_flow_graph.cpp
src/test/test_eh_tasks.cpp
src/test/test_enumerable_thread_specific.cpp
src/test/test_environment_whitebox.cpp
src/test/test_examples_common_utility.cpp
src/test/test_fast_random.cpp
src/test/test_flow_graph.cpp
src/test/test_flow_graph_priorities.cpp
src/test/test_flow_graph_whitebox.cpp
src/test/test_fp.cpp
src/test/test_function_node.cpp
src/test/test_gfx_factory.cpp
src/test/test_global_control.cpp
src/test/test_global_control_whitebox.cpp
src/test/test_halt.cpp
src/test/test_handle_perror.cpp
src/test/test_hw_concurrency.cpp
src/test/test_indexer_node.cpp
src/test/test_initializer_list.h
src/test/test_inits_loop.cpp
src/test/test_intrusive_list.cpp
src/test/test_iterators.cpp
src/test/test_ittnotify.cpp
src/test/test_join_node.cpp
src/test/test_join_node.h
src/test/test_join_node_key_matching.cpp
src/test/test_join_node_msg_key_matching.cpp
src/test/test_lambda.cpp
src/test/test_limiter_node.cpp
src/test/test_malloc_atexit.cpp
src/test/test_malloc_compliance.cpp
src/test/test_malloc_init_shutdown.cpp
src/test/test_malloc_lib_unload.cpp
src/test/test_malloc_new_handler.cpp
src/test/test_malloc_overload.cpp
src/test/test_malloc_overload_disable.cpp
src/test/test_malloc_pools.cpp
src/test/test_malloc_pure_c.c
src/test/test_malloc_regression.cpp
src/test/test_malloc_shutdown_hang.cpp
src/test/test_malloc_used_by_lib.cpp
src/test/test_malloc_whitebox.cpp
src/test/test_model_plugin.cpp
src/test/test_multifunction_node.cpp
src/test/test_mutex.cpp
src/test/test_mutex_native_threads.cpp
src/test/test_opencl_node.cl
src/test/test_opencl_node.cpp
src/test/test_openmp.cpp
src/test/test_overwrite_node.cpp
src/test/test_parallel_do.cpp
src/test/test_parallel_for.cpp
src/test/test_parallel_for_each.cpp
src/test/test_parallel_for_vectorization.cpp
src/test/test_parallel_invoke.cpp
src/test/test_parallel_pipeline.cpp
src/test/test_parallel_reduce.cpp
src/test/test_parallel_scan.cpp
src/test/test_parallel_sort.cpp
src/test/test_parallel_while.cpp
src/test/test_partitioner.h
src/test/test_partitioner_whitebox.cpp
src/test/test_partitioner_whitebox.h
src/test/test_pipeline.cpp
src/test/test_pipeline_with_tbf.cpp
src/test/test_priority_queue_node.cpp
src/test/test_queue_node.cpp
src/test/test_range_based_for.h
src/test/test_reader_writer_lock.cpp
src/test/test_runtime_loader.cpp
src/test/test_rwm_upgrade_downgrade.cpp
src/test/test_semaphore.cpp
src/test/test_sequencer_node.cpp
src/test/test_source_node.cpp
src/test/test_split_node.cpp
src/test/test_static_assert.cpp
src/test/test_std_thread.cpp
src/test/test_streaming_node.cpp
src/test/test_tagged_msg.cpp
src/test/test_task.cpp
src/test/test_task_arena.cpp
src/test/test_task_assertions.cpp
src/test/test_task_auto_init.cpp
src/test/test_task_enqueue.cpp
src/test/test_task_group.cpp
src/test/test_task_leaks.cpp
src/test/test_task_priority.cpp
src/test/test_task_scheduler_init.cpp
src/test/test_task_scheduler_observer.cpp
src/test/test_task_steal_limit.cpp
src/test/test_tbb_condition_variable.cpp
src/test/test_tbb_fork.cpp
src/test/test_tbb_header.cpp
src/test/test_tbb_thread.cpp
src/test/test_tbb_version.cpp
src/test/test_thread.h
src/test/test_tick_count.cpp
src/test/test_tuple.cpp
src/test/test_write_once_node.cpp
src/test/test_yield.cpp

diff --git a/CHANGES b/CHANGES
index 2a02117..7e791f2 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,42 @@
 The list of most significant changes made over time in
 Intel(R) Threading Building Blocks (Intel(R) TBB).
 
+Intel TBB 2019 Update 4
+TBB_INTERFACE_VERSION == 11004
+
+Changes (w.r.t. Intel TBB 2019 Update 3):
+
+- global_control class is now a fully supported feature.
+- Added deduction guides for tbb containers: concurrent_hash_map,
+    concurrent_unordered_map, concurrent_unordered_set.     
+- Added tbb::scalable_memory_resource function returning
+    std::pmr::memory_resource interface to the TBB memory allocator.
+- Added tbb::cache_aligned_resource class that implements
+    std::pmr::memory_resource with cache alignment and no false sharing.
+- Added rml::pool_msize function returning the usable size of a memory
+    block allocated from a given memory pool.
+- Added default and copy constructors for tbb::counting_iterator
+    and tbb::zip_iterator.
+- Added TBB_malloc_replacement_log function to obtain the status of
+    dynamic memory allocation replacement (Windows* only).
+- CMake configuration file now supports release-only and debug-only
+    configurations (https://github.com/01org/tbb/issues/113).
+- TBBBuild CMake module takes the C++ version from CMAKE_CXX_STANDARD.
+
+Bugs fixed:
+
+- Fixed compilation for tbb::concurrent_vector when used with 
+    std::pmr::polymorphic_allocator.
+
+Open-source contributions integrated:
+
+- TBB_INTERFACE_VERSION is included into TBB version in CMake
+    configuration (https://github.com/01org/tbb/pull/100)
+    by Hans Johnson.
+- Fixed detection of C++17 deduction guides for Visual C++*
+    (https://github.com/01org/tbb/pull/112) by Marian Klymov.
+
+------------------------------------------------------------------------
 Intel TBB 2019 Update 3
 TBB_INTERFACE_VERSION == 11003
 
@@ -120,6 +156,17 @@ Open-source contributions integrated:
 - Added support for OpenBSD by Anthony J. Bentley.
 
 ------------------------------------------------------------------------
+Intel TBB 2018 Update 6
+TBB_INTERFACE_VERSION == 10006
+
+Changes (w.r.t. Intel TBB 2018 Update 5):
+
+Bugs fixed:
+
+- Fixed an issue with dynamic memory allocation replacement on Windows*
+    occurred for some versions of ucrtbase.dll.
+
+------------------------------------------------------------------------
 Intel TBB 2018 Update 5
 TBB_INTERFACE_VERSION == 10005
 
index 0f7d30d..8dea398 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 8189669..ea92310 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-# Threading Building Blocks 2019 Update 3
-[![Stable release](https://img.shields.io/badge/version-2019_U3-green.svg)](https://github.com/01org/tbb/releases/tag/2019_U3)
+# Threading Building Blocks 2019 Update 4
+[![Stable release](https://img.shields.io/badge/version-2019_U4-green.svg)](https://github.com/01org/tbb/releases/tag/2019_U4)
 [![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE)
 
 Threading Building Blocks (TBB) lets you easily write parallel C++ programs that take
index 5adcd41..7dcd308 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index e279a4d..901f15e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index fc13406..c35856b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 0ba2135..e1d35e9 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index aae9964..03cb462 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 1c8ff5f..89a8013 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 91bebc9..3bfa35e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index e3150e3..253148b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 0ddf460..f655da6 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index c147568..7b102dc 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index eae6c9f..b4cea5a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 8e38d36..ad72ede 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 8d7bf85..1e726c2 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 91bebc9..3bfa35e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 1e8dcf4..1b857f4 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 95b1735..625e6d3 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index b1fda77..502fe13 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 4f9ef31..731568f 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index a90d587..0c556dd 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 3909b38..b624c25 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index c0232b0..4f53866 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index c95e5e3..12c905d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 919bc49..e0a9d78 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 8b1c7ae..6934601 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 01b1d90..1d7fb07 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index ad1b4fb..6ad8e96 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 53796a9..77c685d 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #
-# Copyright (c) 2017-2018 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index cef75df..2356648 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 6bb2e7a..a0207c2 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 45d6b4b..96f768a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2018 Intel Corporation
+// Copyright (c) 2005-2019 Intel Corporation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
index a7bee90..c8bdfab 100644 (file)
@@ -1,6 +1,6 @@
 @echo off
 REM
-REM Copyright (c) 2005-2018 Intel Corporation
+REM Copyright (c) 2005-2019 Intel Corporation
 REM
 REM Licensed under the Apache License, Version 2.0 (the "License");
 REM you may not use this file except in compliance with the License.
index 4dd9c2c..3f2dd06 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 57f41d8..ae04769 100644 (file)
@@ -233,7 +233,7 @@ See the Makefile infrastructure files for examples.
 <HR>
 <A HREF="../index.html">Up to parent directory</A>
 <P></P>
-Copyright &copy; 2005-2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2005-2019 Intel Corporation.  All Rights Reserved.
 <P></P>
 Intel, the Intel logo and Itanium are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries.
 <p></p>
index 6c81042..0e1da2e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -17,7 +17,3 @@
 #
 
 include $(tbb_root)/build/macos.clang.inc
-
-CPLUS_FLAGS += -miphoneos-version-min=8.0
-LINK_FLAGS += -miphoneos-version-min=8.0
-LIB_LINK_FLAGS += -miphoneos-version-min=8.0
index 03308a0..690d556 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -34,3 +34,5 @@ endif
 
 ios_version:=$(shell echo $(SDKROOT) | sed -e "s/.*[a-z,A-Z]\(.*\).sdk/\1/")
 runtime:=cc$(clang_version)_ios$(ios_version)
+
+IPHONEOS_DEPLOYMENT_TARGET ?= 8.0
index 065f1d3..39222f8 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 3693676..cab65af 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 4731f96..0d6121f 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 8e58f1e..fd0ca30 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index d2693c1..1bdc15f 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index dcec5a6..22580e7 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 23a4288..b46a9da 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -94,6 +94,16 @@ ifdef SDKROOT
     LIB_LINK_FLAGS += -L$(SDKROOT)/usr/lib/system -L$(SDKROOT)/usr/lib/
 endif
 
+ifeq (ios,$(target))
+    CPLUS_FLAGS += -miphoneos-version-min=$(IPHONEOS_DEPLOYMENT_TARGET)
+    LINK_FLAGS += -miphoneos-version-min=$(IPHONEOS_DEPLOYMENT_TARGET)
+    LIB_LINK_FLAGS += -miphoneos-version-min=$(IPHONEOS_DEPLOYMENT_TARGET)
+else
+    CPLUS_FLAGS += -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET)
+    LINK_FLAGS += -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET)
+    LIB_LINK_FLAGS += -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET)
+endif
+
 #------------------------------------------------------------------------------
 # Setting assembler data.
 #------------------------------------------------------------------------------
index 5df569d..9fea5e4 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index aa7d332..0598f00 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -66,7 +66,6 @@ ifneq (,$(codecov))
 endif
 
 # ICC 14.0 and higher support usage of libc++, clang standard library
-MACOSX_DEPLOYMENT_TARGET ?= 10.11
 ifneq (,$(shell icc -dumpversion | egrep  "^1[4-9]\."))
 ifneq (,$(stdlib))
     CPLUS_FLAGS    += -stdlib=$(stdlib) -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET)
index c219e57..51d502a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -105,3 +105,5 @@ LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB)
 TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
 
 OPENCL.LIB = -framework OpenCL
+
+MACOSX_DEPLOYMENT_TARGET ?= 10.11
index f91519a..1ef3454 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index bb1e81a..3185e94 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 60e01b7..2f3cfc9 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index e2b0971..7b2bc4d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 8e1fb31..06c5598 100644 (file)
@@ -1,6 +1,6 @@
 @echo off
 REM
-REM Copyright (c) 2005-2018 Intel Corporation
+REM Copyright (c) 2005-2019 Intel Corporation
 REM
 REM Licensed under the Apache License, Version 2.0 (the "License");
 REM you may not use this file except in compliance with the License.
index 8df4c14..8becd65 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 7703f4c..e1397f9 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index ba8211a..647b360 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 7703f4c..e1397f9 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 2fcfc07..07cc225 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 885bcc4..c9260d5 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 031b22c..3cfa19e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2018 Intel Corporation
+// Copyright (c) 2005-2019 Intel Corporation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
index 1146654..40b85f3 100644 (file)
@@ -20,7 +20,7 @@ This directory contains the Visual Studio* 2013 solution to build Intel&reg; Thr
 <HR>
 <A HREF="../index.html">Up to parent directory</A>
 <P></P>
-Copyright &copy; 2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2017-2019 Intel Corporation.  All Rights Reserved.
 <P></P>
 Intel and the Intel logo are trademarks of Intel Corporation
 or its subsidiaries in the U.S. and/or other countries.
index 97909cf..55c21a8 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 90a956a..ad13763 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 8fc8cdf..89889e3 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 891bf94..19eaf41 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 40befbf..17480d5 100644 (file)
@@ -30,7 +30,7 @@ Visit our `forum <https://software.intel.com/en-us/forums/intel-threading-buildi
 Release Notes
 -------------
 * Minimum supported CMake version: ``3.0.0``.
-* Intel TBB versioning via `find_package <https://cmake.org/cmake/help/latest/command/find_package.html>`_ has restricted functionality: compatibility of update numbers (as well as interface versions) is not checked. Supported versioning: ``find_package(TBB <major>.<minor> ...)``. Intel TBB interface version can be obtained in the customer project via the ``TBB_INTERFACE_VERSION`` variable.
+* Intel TBB versioning via `find_package <https://cmake.org/cmake/help/latest/command/find_package.html>`_ has the following format: ``find_package(TBB <major>.<minor>.<interface> ...)``. Intel TBB interface version can also be obtained in the customer project via the ``TBB_INTERFACE_VERSION`` variable.
 
 Use cases of Intel TBB integration into CMake-aware projects
 ------------------------------------------------------------
index 14f8517..d106c53 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2018 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@
 #
 # Usage:
 #  include(TBBBuild.cmake)
-#  tbb_build(ROOT <tbb_root> MAKE_ARGS <arg1> [... <argN>])
+#  tbb_build(TBB_ROOT <tbb_root> CONFIG_DIR <config_dir> MAKE_ARGS <arg1> [... <argN>])
 #  find_package(TBB <options>)
 #
 
@@ -78,6 +78,10 @@ function(tbb_build)
             set(result "compiler=${compiler}" ${result})
         endif()
 
+        if (NOT tbb_GMA_USER_DEFINED_ARGS MATCHES "stdver=" AND DEFINED CMAKE_CXX_STANDARD)
+            set(result "stdver=c++${CMAKE_CXX_STANDARD}" ${result})
+        endif()
+
         if (NOT tbb_GMA_USER_DEFINED_ARGS MATCHES "tbb_build_dir=")
             set(result "tbb_build_dir=${CMAKE_CURRENT_BINARY_DIR}/tbb_cmake_build" ${result})
         endif()
index 5cb93af..1ce80f6 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2018 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 54fc7c6..d4dd515 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2018 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -73,7 +73,7 @@ if (NOT _tbb_compiler_id STREQUAL \"GNU\")
     execute_process(COMMAND gcc --version OUTPUT_VARIABLE _tbb_gcc_ver_output ERROR_QUIET)
     string(REGEX REPLACE \".*gcc.*([0-9]+\\\\.[0-9]+)\\\\.[0-9]+.*\" \"\\\\1\" _tbb_compiler_ver \"\${_tbb_gcc_ver_output}\")
     if (NOT _tbb_compiler_ver)
-        message(FATAL_ERROR \"This Intel TBB package is intended to be used only environment with available 'gcc'\")
+        message(FATAL_ERROR \"This Intel TBB package is intended to be used only in environment with available 'gcc'\")
     endif()
     unset(_tbb_gcc_ver_output)
 endif()
@@ -123,10 +123,8 @@ endif()")
             set(TBB_IMPLIB_RELEASE "\nIMPORTED_IMPLIB_RELEASE \"${tbb_MK_TBB_RELEASE_DIR}/\${_tbb_component}.lib\"")
             set(TBB_IMPLIB_DEBUG "\nIMPORTED_IMPLIB_DEBUG \"${tbb_MK_TBB_DEBUG_DIR}/\${_tbb_component}_debug.lib\"")
         else()
-            # Note: multiline variable
-            set(TBB_IMPLIB "
-                              IMPORTED_IMPLIB_RELEASE       \"\${_tbb_root}/lib/\${_tbb_arch_subdir}/\${_tbb_compiler_subdir}/\${_tbb_component}.lib\"
-                              IMPORTED_IMPLIB_DEBUG         \"\${_tbb_root}/lib/\${_tbb_arch_subdir}/\${_tbb_compiler_subdir}/\${_tbb_component}_debug.lib\"")
+            set(TBB_IMPLIB_RELEASE "\nIMPORTED_IMPLIB_RELEASE \"\${_tbb_root}/lib/\${_tbb_arch_subdir}/\${_tbb_compiler_subdir}/\${_tbb_component}.lib\"")
+            set(TBB_IMPLIB_DEBUG "\nIMPORTED_IMPLIB_DEBUG \"\${_tbb_root}/lib/\${_tbb_arch_subdir}/\${_tbb_compiler_subdir}/\${_tbb_component}_debug.lib\"")
         endif()
 
         # Note: multiline variable
@@ -155,7 +153,7 @@ endif()")
     string(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" _tbb_ver_major "${_tbb_stddef}")
     string(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" _tbb_ver_minor "${_tbb_stddef}")
     string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" TBB_INTERFACE_VERSION "${_tbb_stddef}")
-    set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}")
+    set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}.${TBB_INTERFACE_VERSION}")
 
     if (tbb_MK_CONFIG_FOR_SOURCE)
         set(_tbb_config_template TBBConfigForSource.cmake.in)
index 5c38aaa..5748f76 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2018 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 9094343..d12cff6 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2018 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -58,13 +58,23 @@ foreach (_tbb_component ${TBB_FIND_COMPONENTS})
     set(_tbb_release_lib "${_tbb_lib_path}/@TBB_LIB_PREFIX@${_tbb_component}.@TBB_LIB_EXT@")
     set(_tbb_debug_lib "${_tbb_lib_path}/@TBB_LIB_PREFIX@${_tbb_component}_debug.@TBB_LIB_EXT@")
 
-    if (EXISTS "${_tbb_release_lib}" AND EXISTS "${_tbb_debug_lib}")
+    if (EXISTS "${_tbb_release_lib}" OR EXISTS "${_tbb_debug_lib}")
         add_library(TBB::${_tbb_component} SHARED IMPORTED)
         set_target_properties(TBB::${_tbb_component} PROPERTIES
-                              IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
-                              IMPORTED_LOCATION_RELEASE     "${_tbb_release_lib}"
-                              IMPORTED_LOCATION_DEBUG       "${_tbb_debug_lib}"
-                              INTERFACE_INCLUDE_DIRECTORIES "${_tbb_root}/include"@TBB_IMPLIB@@TBB_COMPILE_DEFINITIONS@)
+                              INTERFACE_INCLUDE_DIRECTORIES "${_tbb_root}/include"@TBB_COMPILE_DEFINITIONS@)
+
+
+        if (EXISTS "${_tbb_release_lib}")
+            set_target_properties(TBB::${_tbb_component} PROPERTIES
+                                  IMPORTED_LOCATION_RELEASE "${_tbb_release_lib}"@TBB_IMPLIB_RELEASE@)
+            set_property(TARGET TBB::${_tbb_component} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+        endif()
+
+        if (EXISTS "${_tbb_debug_lib}")
+            set_target_properties(TBB::${_tbb_component} PROPERTIES
+                                  IMPORTED_LOCATION_DEBUG "${_tbb_debug_lib}"@TBB_IMPLIB_DEBUG@)
+            set_property(TARGET TBB::${_tbb_component} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
+        endif()
 
         # Add internal dependencies for imported targets: TBB::tbbmalloc_proxy -> TBB::tbbmalloc
         if (_tbb_component STREQUAL tbbmalloc_proxy)
index 2bccdd9..bb1b308 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2018 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index f587af2..19268bb 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2018 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index aba73d9..c27aa0b 100644 (file)
@@ -91,6 +91,7 @@ Software - Supported Compilers
         version provided with that operating system is supported
             GNU Compilers (gcc) 4.1 - 7.1
             GNU C Library (glibc) version 2.4 - 2.19
+    Clang* 3.8 - 7.0
     Xcode* 7.0 - 9.1
     Android* NDK r10e - r17b
 
@@ -120,7 +121,7 @@ Library Issues
         with each other directly.
 
 ------------------------------------------------------------------------
-(C) 2018 Intel Corporation
+(C) 2019 Intel Corporation
 
 Intel, the Intel logo, Intel Core, Intel Atom, Xeon, Intel Xeon Phi and
 Pentium are trademarks of Intel Corporation in the U.S. and/or other
index 7ba446b..5a51272 100644 (file)
@@ -1,6 +1,6 @@
 <hr>
 <p></p>
-Copyright &copy; 2005-2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2005-2019 Intel Corporation.  All Rights Reserved.
 <p></p>
 Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
 registered trademarks or trademarks of Intel Corporation or its
index ee3e985..003947d 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>
index cb97400..873b1b6 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index cc49a39..5689d58 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 7afbed8..6e7da31 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index 9274c47..abad2ee 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6f255b0..be836f9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 067d281..08c7331 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9ff1086..901f5a9 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "sub_string_finder" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                A1F5940C0B8F1DB600073279 /* Build configuration list for PBXNativeTarget "sub_string_finder_pretty" */ = {
                        isa = XCConfigurationList;
                                A1F594100B8F1DB600073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                A1F5941F0B8F1F4E00073279 /* Build configuration list for PBXNativeTarget "sub_string_finder_extended" */ = {
                        isa = XCConfigurationList;
                                A1F594230B8F1F4E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index 3594be3..f18369a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 87c4a59..bef7f7e 100644 (file)
@@ -1,6 +1,6 @@
 @echo off
 REM
-REM Copyright (c) 2005-2018 Intel Corporation
+REM Copyright (c) 2005-2019 Intel Corporation
 REM
 REM Licensed under the Apache License, Version 2.0 (the "License");
 REM you may not use this file except in compliance with the License.
index 3417a92..52d4087 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index c4aeb82..1c3e871 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index fb0e4a6..3f8efc4 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 18d1096..5117125 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0ca7766..e557bda 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 281bc6f..8a32687 100644 (file)
@@ -1,6 +1,6 @@
 @echo off
 REM
-REM Copyright (c) 2005-2018 Intel Corporation
+REM Copyright (c) 2005-2019 Intel Corporation
 REM
 REM Licensed under the Apache License, Version 2.0 (the "License");
 REM you may not use this file except in compliance with the License.
index 3e40176..a5150f3 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a35ccb7..55f0037 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index db347e0..905a1c0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c5ae8a3..5b45778 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 81e1995..9cc91c2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 096db8a..39e9650 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5b87395..7133dbb 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4bd0881..11f7bfd 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 266c1a4..2835009 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c344a91..227c9f4 100644 (file)
@@ -36,7 +36,7 @@
        <key>LSMinimumSystemVersion</key>
        <string>${MACOSX_DEPLOYMENT_TARGET}</string>
        <key>NSHumanReadableCopyright</key>
-       <string>Copyright 2005-2018 Intel Corporation.  All Rights Reserved.</string>
+       <string>Copyright 2005-2019 Intel Corporation.  All Rights Reserved.</string>
        <key>NSMainNibFile</key>
        <string>MainMenu</string>
        <key>NSPrincipalClass</key>
index 4531cbe..5262d94 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8f5ce23..a1b2476 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6e9398a..2535857 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>
index 7ca97a2..408b16d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0f8475e..89256fc 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f6630b5..df419b1 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 871cfd5..42140b4 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 779ac7d..52f7746 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9ed9d93..07268e4 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index 44900a5..120146d 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "count_strings" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index 78521f7..6972218 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>
index 6e769e3..a508779 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>
index 6aa7e91..ee57905 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index be78d4c..5d25813 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index dd730e8..eca34d5 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index 0d380c8..1108101 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4b26fb1..1af55b1 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "shortpath" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index e794596..2d19817 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index ebab52d..e87c320 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 944e207..4ca2849 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e05804a..14d2b6d 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index 5d282c4..ad27f72 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "binpack" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index 5f8b60e..cf207a3 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index d244a6a..39a8ac8 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index d11c940..a7dc0b2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4fd8992..7b0e3cf 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index cb82eba..748454d 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index 6529166..041d3bc 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "cholesky" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
diff --git a/examples/graph/cholesky/xcode/cholesky.xcodeproj/xcshareddata/xcschemes/Cholesky.xcscheme b/examples/graph/cholesky/xcode/cholesky.xcodeproj/xcshareddata/xcschemes/Cholesky.xcscheme
new file mode 100644 (file)
index 0000000..a650a0f
--- /dev/null
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1000"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "8DD76F620486A84900D96B5E"
+               BuildableName = "Cholesky"
+               BlueprintName = "Cholesky"
+               ReferencedContainer = "container:cholesky.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug64"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "8DD76F620486A84900D96B5E"
+            BuildableName = "Cholesky"
+            BlueprintName = "Cholesky"
+            ReferencedContainer = "container:cholesky.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Release64"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "8DD76F620486A84900D96B5E"
+            BuildableName = "Cholesky"
+            BlueprintName = "Cholesky"
+            ReferencedContainer = "container:cholesky.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <CommandLineArguments>
+         <CommandLineArgument
+            argument = "4"
+            isEnabled = "YES">
+         </CommandLineArgument>
+         <CommandLineArgument
+            argument = "2"
+            isEnabled = "YES">
+         </CommandLineArgument>
+      </CommandLineArguments>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release64"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "8DD76F620486A84900D96B5E"
+            BuildableName = "Cholesky"
+            BlueprintName = "Cholesky"
+            ReferencedContainer = "container:cholesky.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug64">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release64"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
index 63d4273..7d9cf6b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 6a3267b..1e73129 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 66b18b6..453174b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ada56dd..83454d2 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index 83e6266..7a3535d 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "dining_philosophers" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index 0b01b04..fadc840 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index e3a539d..6ae4a78 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 60dffb4..27c4b55 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8a41306..56472ea 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index cfd2221..72da0b5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 14f0376..191d8c1 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 46ab18a..0e3d78f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a64504f..dc14cfa 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 85b0a14..3cf1c38 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8ab1da2..c9b7910 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 717e053..ebb4fe9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 67f9a37..09364f8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0f3e9af..14f5b15 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
 
                        <p>
index dceabcc..69f17bd 100644 (file)
                                1DEB923308733DC60010E9CD /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "fgbzip2" */ = {
                        isa = XCConfigurationList;
                                1DEB923708733DC60010E9CD /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index 095b92b..1e0d5bb 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>
index de14d9c..23abad3 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0a7d6f6..c5814b6 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index b7d25e1..7f752b8 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 527ca92..de349f8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0818eb4..f74fd86 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4ba65a0..b0ed98f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 23947d7..ed287f3 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>
index 0e8574d..884c310 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3e9b9f5..d54f906 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 413bab9..e5176c9 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2018 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index e861145..4d88b22 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2018 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 4287922..6218078 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2016-2018 Intel Corporation
+    Copyright (c) 2016-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ffc2e7e..01cac33 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
 
                        <p>
index 7312e07..1fd5919 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index d0bfdc1..97a228b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 18e34d5..82696a2 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index 89b58da..a0b4cfd 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9d46e7f..f14b651 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1875904..771ef86 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 41fd598..96c8393 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "som" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index 404dafa..8d60c06 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 032fa95..d8243bc 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 7c77955..63cc154 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5080f5a..af9c3f5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 91f769b..be8d06a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d7d787d..e64d58f 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
 
                        <p>
index 44dfd53..da33477 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c99399f..14bcd21 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 820122d..c1a1c03 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "stereo" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index e9065fe..e905bb0 100644 (file)
@@ -572,7 +572,7 @@ source &lt;<i>installdir</i>&gt;/bin/tbbvars.csh (arch) [platform [TBBROOT_detec
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index f211569..cae0405 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>
index c8429db..fd9c133 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1f4ed12..0eb63c0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3516207..0e84694 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index d419012..8c056d8 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index aacc41d..4ca1180 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6b1a19c..4b35821 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0839da9..afe1047 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 43b1768..88739ee 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index d3c8cb6..10431bb 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "parallel_preorder" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index 3ca0696..630d65c 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 15c9343..5101cde 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 4176a01..2aecf29 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a690a81..09fbd7b 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index 44eb0d8..af07dcd 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a0e0ad7..7d4ace7 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 357cc70..94290a4 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d485396..a7580d0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 59d3600..0fa729b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f13cbe9..dcf3238 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a7e58b0..32c2ec5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index cd8a515..d12eafb 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "game_of_life" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index 2b8a77d..46b53c3 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>
index d1c9459..829b91a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 6449071..d47d97f 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 5a43816..4efef27 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ec3ecd9..4157c5d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 56695d6..8681e18 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f155f62..25491f5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 440f2e8..b30231f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 570fc6a..322e08b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0b2cf7b..3b9fa7f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 385716d..e9487af 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1008b52..b3e71d6 100644 (file)
                        <p>
                                Intel, Intel Core and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index 9cc8f74..cdac720 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9c839df..bc5e0c3 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 5ebaac4..cac85fa 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 3905c27..89ddd29 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c984e28..977bb99 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index b7a660f..3222d32 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index 3c3abb0..9f624ac 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d9acaa8..8d3932a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index eb9e682..a84bb53 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5ba6df0..e62f2a7 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index da6ed45..e7b91fd 100644 (file)
                                84D01771152743200008A4E0 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                84D01772152743200008A4E0 /* Build configuration list for PBXNativeTarget "tbbExample" */ = {
                        isa = XCConfigurationList;
                                84D01774152743200008A4E0 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                D3BD96841C0DD00500163D8B /* Build configuration list for PBXNativeTarget "tbbExample_ios" */ = {
                        isa = XCConfigurationList;
                                D3BD96861C0DD00500163D8B /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index 4e9d3a5..5ad8c2d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index d9ce96d..776bedf 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 4c49a39..ee6e50e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ff15380..aa0f1a8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1074048..66f8ef8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 721d1c9..bf5b6b6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9964fb0..b46a567 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4a46c09..93784af 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 274aa28..0c2a9ba 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7dae5be..a47d63b 100644 (file)
@@ -1,6 +1,6 @@
 @echo on
 REM
-REM Copyright (c) 2005-2018 Intel Corporation
+REM Copyright (c) 2005-2019 Intel Corporation
 REM
 REM Licensed under the Apache License, Version 2.0 (the "License");
 REM you may not use this file except in compliance with the License.
index afcd2e9..1a5d046 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3ebb1f6..9ac4206 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index dda3e02..17d7736 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index bec0b48..088f450 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
 
                        <p>
index eec81e7..d6bd6c0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index dcfa43c..e581a0f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e8b6119..2dc0f6e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7be974d..87304f8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9a04136..65acf1f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1d19283..635426b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 968a4ab..1046db0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 57445a6..4ddf356 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index eaf63a7..002ff3b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d53c0fe..d49c542 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 726bd38..c74058f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7576f92..8c3e76a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0529188..d4c5913 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 52baa43..4d56ece 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e766454..7147f9a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6dadb24..c52d344 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4f298fc..1e5b17c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f0e8b00..1c9c2c6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2bf51bd..a306576 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 691592b..e9580e5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2cd4c2a..84ea063 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 97af731..bbfde63 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f1dc972..e8e2bc2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c2eaa0c..ce2d9c3 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index db65f7a..db6ea81 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 40f4710..04de46c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f58193f..db47db9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c08af7b..3772645 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ab66353..60f4b70 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index dc1e38a..fef05f3 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0625ba7..3429a26 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a73ad10..b688f63 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c3a1fab..0f00624 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a724df8..9a596ac 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 704f404..c9fe7c4 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f40575f..a486288 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ce3ebc5..8b59c85 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index b16bd1e..3e488b4 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5c34a26..0032380 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 474ca30..280dc7b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d63c179..72c74f9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index bcb3d17..b28475f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 609ad97..c609e51 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8837d70..e08835a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 93e0ef8..6337a9b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8b58303..9d4bcab 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 76c2e28..e0d6eef 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 29d68bb..ad7f733 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index fe9e55d..a7b5c4f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9c7ebde..b52c3e0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1317563..8eff1a8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 10959bc..2bf5944 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2bf2502..24a1c21 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6a1ef54..8d43c2c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 44bd9d6..0f2d606 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5b4b9db..0649b65 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 11134b9..6879eb8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index be0b2a4..1a221fd 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2be6db5..bf55b29 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ddb54d1..0b68802 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 24ee59c..2657186 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c83a997..9e6412a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index db270e4..bf84930 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 13761d5..b164dcb 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3ff9321..1dcb85f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 34864d4..20ada17 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d80adce..da6c96f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index b71ad5c..527d01d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d92fd63..2263077 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4ab2bbf..71d7e2b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index fbd16da..ae11c15 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5c4999c..5b72692 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9be8316..111908a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5438499..2f7b2a2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2e5232f..722b63e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 489e6c5..aa5f7f6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index bea9cd6..8331497 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c8e03c6..a29342e 100644 (file)
                                84011760152D6F6C00B07E4D /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                84011797152D6F8400B07E4D /* Build configuration list for PBXNativeTarget "tachyon.tbb1d" */ = {
                        isa = XCConfigurationList;
                                84011799152D6F8400B07E4D /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "tachyon" */ = {
                        isa = XCConfigurationList;
                                84D01771152743200008A4E0 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                84D01772152743200008A4E0 /* Build configuration list for PBXNativeTarget "tachyon.tbb" */ = {
                        isa = XCConfigurationList;
                                84D01774152743200008A4E0 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                D3E786C31C0E3588006995F1 /* Build configuration list for PBXNativeTarget "tachyon.tbb.ios" */ = {
                        isa = XCConfigurationList;
                                D3E786C21C0E3588006995F1 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index f2ef31d..92256ed 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 3aaad81..8efec27 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 6806015..6f11fc1 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6675008..43fb999 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 54a6753..8f2c725 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 741f1e8..55d6fd9 100644 (file)
                .circ {
                        list-style-type:circle
                }
-               
+
                .single {
                        padding: 0 0.5em;
                }
-               
+
                /* ------------------------------------------------- */
                /* Table styles                                      */
                table{
                }
                th{
                        border:1px #dddddd solid;
-                       padding-top:2px;                 
+                       padding-top:2px;
                        padding-bottom:0px;
-                       padding-right:3px;               
+                       padding-right:3px;
                        padding-left:3px;
                }
                td{
                        padding-right:5px;
                        vertical-align:top;
                }
-               
+
                .specs {
                        border-collapse:collapse;
                }
                        padding: 0 0.2em 0.2em;
                        text-align: center;
                }
-               .specs td tr:last-child td, 
+               .specs td tr:last-child td,
                .specs td tr:last-child th {
                        padding: 0 0.2em;
                }
        <title>Intel&reg; Threading Building Blocks. Convex_hull sample</title>
 </head>
 <body>
-       
+
        <div id="banner">
                <img class="logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEMAAAAsCAYAAAA+aAX8AAAAAXNSR0IArs4c6QAAAARnQU1BAACx
                                jwv8YQUAAAAJcEhZcwAALiIAAC4iAari3ZIAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVh
                                9Or1LzUmVVz+HJXDAAAAAElFTkSuQmCC">
                <h1 class="title">Intel&reg; Threading Building Blocks.<br>Convex_hull sample</h1>
        </div>
-       
+
        <p>
                Parallel version of convex hull algorithm (quick hull).
        </p>
                        </p>
                </div>
        </div>
-       
+
        <div class="changes">
                <div class="h3-alike">Files</div>
                <input type="checkbox" checked="checked">
                        </dl>
                </div>
        </div>
-       
+
        <div class="changes">
                <div class="h3-alike">Directories</div>
                <input type="checkbox" checked="checked">
                                <dt>To run a short version of this example, e.g., for use with Intel&reg; Threading Tools:
                                <dd>Build a <i>debug</i> version of the example
                                        (see the <a href="../../index.html">build instructions</a>).
-                                       <br>Run it with a small problem size and the desired number of threads, e.g., <tt>convex_hull_sample&nbsp;500000&nbsp;4</tt>.
+                                       <br>Run it with a small problem size and the desired number of threads, e.g., <tt>convex_hull_sample&nbsp;4&nbsp;500000</tt>.
                        </dl>
                </div>
        </div>
-       
+
        <br>
        <a href="../index.html">Up to parent directory</a>
        <hr>
                <div class="show-hide">
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
-                               <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>* Other names and brands may be claimed as the property of others.
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
-       </div>  
-       
+       </div>
+
 </body>
 </html>
index 49925d5..7803c73 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "convex_hull" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                A1F594EE0B8F4B8200073279 /* Build configuration list for PBXNativeTarget "convex_hull_bench" */ = {
                        isa = XCConfigurationList;
                                A1F594F20B8F4B8200073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index 9649de1..04149f7 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>
index 731895b..db23458 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index f61d2ee..f3371f3 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 8357994..734225d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 09f3a6e..25d6e17 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3ae92e1..f260dfd 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 97120a0..564e6fd 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index a3d8b61..9530f3b 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "primes" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index ec36081..92c013d 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>
index d4037ec..3f1fddd 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 0571c75..6390335 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index f1690d5..7e0ea8b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 11a5d64..7f2b267 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index c15be31..3a6f6a5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 57ea093..03611dd 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "square" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index bc5ec71..ceaa283 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>
index f396e87..37f5238 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index b71167a..8fba35d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index a655258..67bd112 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 15d3976..0da9798 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6923a7b..2743f57 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 029cbc2..594d98f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ab152e5..fce116b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2f6ba88..c4e5783 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c2e7d5b..15ef086 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index c0ad972..6cd2363 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "tree_sum" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index 6ed62ad..3793300 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 3327abd..09cdb33 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index b066d79..715eacc 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6712df7..7dc0aba 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c9e0141..de1e2c4 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ce8f01a..ab03ed9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 23e23a6..e52a401 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c0538ac..b6ca4b5 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index 30fcb40..6f087b7 100644 (file)
                                84D01771152743200008A4E0 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                84D01772152743200008A4E0 /* Build configuration list for PBXNativeTarget "tbbExample" */ = {
                        isa = XCConfigurationList;
                                84D01774152743200008A4E0 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                D31F32331C11796D00A77D54 /* Build configuration list for PBXNativeTarget "tbbExample_ios" */ = {
                        isa = XCConfigurationList;
                                D31F32321C11796D00A77D54 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index 21be30d..e244193 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>
index b06191c..e95834e 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>
index 07198e4..dd32a48 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 21d74ab..e0b23de 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 5685ebf..bb157d5 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index f797157..328339a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 835c82c..694c16b 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "sudoku" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index b6a48c7..98c0da8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 69c2fb6..a869f74 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index fd6ff53..ce825bb 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index b0a3aab..d8a5296 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>  
index e8c14e5..09a61b7 100644 (file)
                                A1F593C70B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
                1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "fibonacci" */ = {
                        isa = XCConfigurationList;
                                A1F593C90B8F0E6E00073279 /* Release64 */,
                        );
                        defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Debug64;
+                       defaultConfigurationName = Release64;
                };
 /* End XCConfigurationList section */
        };
index 764d60a..683652a 100644 (file)
                        <p>
                                Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
                                <br>* Other names and brands may be claimed as the property of others. 
-                               <br>&copy; 2018, Intel Corporation
+                               <br>&copy; 2019, Intel Corporation
                        </p>
                </div>
        </div>
index 6fdf71c..7895ced 100644 (file)
@@ -15,7 +15,7 @@ Include files for Intel&reg; Threading Building Blocks (Intel&reg; TBB).
 <HR>
 <A HREF="../index.html">Up to parent directory</A>
 <p></p>
-Copyright &copy; 2005-2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2005-2019 Intel Corporation.  All Rights Reserved.
 <P></P>
 Intel is a registered trademark or trademark of Intel Corporation
 or its subsidiaries in the United States and other countries.
index e5959c2..3c8c348 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c16defe..c3b3306 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e25f096..197d6ea 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f9e8e09..49497c1 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 29c8525..9f79c8f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3c754e5..b8fcadc 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a33b0cd..81502cc 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d3db48c..263f018 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d63860b..a4fb658 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2017-2018 Intel Corporation
+    Copyright (c) 2017-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index de29f30..20c6350 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
 #include <new>
 #include "tbb_stddef.h"
 #if __TBB_ALLOCATOR_CONSTRUCT_VARIADIC
- #include <utility> // std::forward
+#include <utility> // std::forward
+#endif
+
+#if __TBB_CPP17_MEMORY_RESOURCE_PRESENT
+#include <memory_resource>
 #endif
 
 namespace tbb {
@@ -69,7 +73,6 @@ public:
     template<typename U> struct rebind {
         typedef cache_aligned_allocator<U> other;
     };
-
     cache_aligned_allocator() throw() {}
     cache_aligned_allocator( const cache_aligned_allocator& ) throw() {}
     template<typename U> cache_aligned_allocator(const cache_aligned_allocator<U>&) throw() {}
@@ -132,6 +135,79 @@ inline bool operator==( const cache_aligned_allocator<T>&, const cache_aligned_a
 template<typename T, typename U>
 inline bool operator!=( const cache_aligned_allocator<T>&, const cache_aligned_allocator<U>& ) {return false;}
 
+#if __TBB_CPP17_MEMORY_RESOURCE_PRESENT
+
+//! C++17 memory resource wrapper to ensure cache line size alignment
+class cache_aligned_resource : public std::pmr::memory_resource {
+public:
+    cache_aligned_resource() : cache_aligned_resource(std::pmr::get_default_resource()) {}
+    explicit cache_aligned_resource(std::pmr::memory_resource* upstream) : m_upstream(upstream) {}
+
+    std::pmr::memory_resource* upstream_resource() const {
+        return m_upstream;
+    }
+
+private:
+    //! We don't know what memory resource set. Use padding to gurantee alignment
+    void* do_allocate(size_t bytes, size_t alignment) override {
+        size_t cache_line_alignment = correct_alignment(alignment);
+        uintptr_t base = (uintptr_t)m_upstream->allocate(correct_size(bytes) + cache_line_alignment);
+        __TBB_ASSERT(base != 0, "Upstream resource returned NULL.");
+#if _MSC_VER && !defined(__INTEL_COMPILER)
+    // unary minus operator applied to unsigned type, result still unsigned
+    #pragma warning(push)
+    #pragma warning(disable: 4146 4706)
+#endif
+        // Round up to the next cache line (align the base address)
+        uintptr_t result = (base + cache_line_alignment) & -cache_line_alignment;
+#if _MSC_VER && !defined(__INTEL_COMPILER)
+    #pragma warning(pop)
+#endif
+        // Record where block actually starts.
+        ((uintptr_t*)result)[-1] = base;
+        return (void*)result;
+    }
+
+    void do_deallocate(void* ptr, size_t bytes, size_t alignment) override {
+        if (ptr) {
+            // Recover where block actually starts
+            uintptr_t base = ((uintptr_t*)ptr)[-1];
+            m_upstream->deallocate((void*)base, correct_size(bytes) + correct_alignment(alignment));
+        }
+    }
+
+    bool do_is_equal(const std::pmr::memory_resource& other) const noexcept override {
+        if (this == &other) { return true; }
+#if __TBB_USE_OPTIONAL_RTTI
+        const cache_aligned_resource* other_res = dynamic_cast<const cache_aligned_resource*>(&other);
+        return other_res && (this->upstream_resource() == other_res->upstream_resource());
+#else
+        return false;
+#endif
+    }
+
+    size_t correct_alignment(size_t alignment) {
+        __TBB_ASSERT(tbb::internal::is_power_of_two(alignment), "Alignemnt is not a power of 2");
+#if __TBB_CPP17_HW_INTERFERENCE_SIZE_PRESENT
+        size_t cache_line_size = std::hardware_destructive_interference_size;
+#else
+        size_t cache_line_size = internal::NFS_GetLineSize();
+#endif
+        return alignment < cache_line_size ? cache_line_size : alignment;
+    }
+
+    size_t correct_size(size_t bytes) {
+        // To handle the case, when small size requested. There could be not
+        // enough space to store the original pointer.
+        return bytes < sizeof(uintptr_t) ? sizeof(uintptr_t) : bytes;
+    }
+
+    std::pmr::memory_resource* m_upstream;
+};
+
+#endif /* __TBB_CPP17_MEMORY_RESOURCE_PRESENT */
+
 } // namespace tbb
 
 #endif /* __TBB_cache_aligned_allocator_H */
+
index 485ef4e..d9debb9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3ca1fef..a46ef6f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 24a1191..a0a072a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 55801d4..aac4f09 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index fed7b9b..f696714 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c9030e7..7371fab 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -34,6 +34,8 @@
 #include "tbb_exception.h"
 #include "tbb_profiling.h"
 #include "internal/_tbb_hash_compare_impl.h"
+#include "internal/_template_helpers.h"
+#include "internal/_allocator_traits.h"
 #if __TBB_INITIALIZER_LISTS_PRESENT
 #include <initializer_list>
 #endif
@@ -48,7 +50,7 @@ namespace tbb {
 
 namespace interface5 {
 
-    template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> > >
+    template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<const Key, T> > >
     class concurrent_hash_map;
 
     //! @cond INTERNAL
@@ -554,7 +556,7 @@ public:
 protected:
     friend class const_accessor;
     struct node;
-    typedef typename Allocator::template rebind<node>::other node_allocator_type;
+    typedef typename tbb::internal::allocator_rebind<Allocator, node>::type node_allocator_type;
     node_allocator_type my_allocator;
     HashCompare my_hash_compare;
 
@@ -858,7 +860,7 @@ public:
 #if __TBB_CPP11_RVALUE_REF_PRESENT
     //! Move Assignment
     concurrent_hash_map& operator=( concurrent_hash_map &&table ) {
-        if(this != &table){
+        if(this != &table) {
             typedef typename tbb::internal::allocator_traits<allocator_type>::propagate_on_container_move_assignment pocma_t;
             if(pocma_t::value || this->my_allocator == table.my_allocator) {
                 concurrent_hash_map trash (std::move(*this));
@@ -1135,6 +1137,33 @@ protected:
     }
 };
 
+#if __TBB_CPP17_DEDUCTION_GUIDES_PRESENT
+namespace internal {
+using namespace tbb::internal;
+
+template<template<typename...> typename Map, typename Key, typename T, typename... Args>
+using hash_map_t = Map<
+    Key, T,
+    std::conditional_t< (sizeof...(Args)>0) && !is_allocator_v< pack_element_t<0, Args...> >,
+                        pack_element_t<0, Args...>, tbb_hash_compare<Key> >,
+    std::conditional_t< (sizeof...(Args)>0) && is_allocator_v< pack_element_t<sizeof...(Args)-1, Args...> >,
+                         pack_element_t<sizeof...(Args)-1, Args...>, tbb_allocator<std::pair<const Key, T> > >
+>;
+}
+
+// Deduction guide for the constructor from two iterators and hash_compare/ allocator
+template<typename I, typename... Args>
+concurrent_hash_map(I, I, Args...)
+-> internal::hash_map_t<concurrent_hash_map, internal::iterator_key_t<I>,internal::iterator_mapped_t<I>, Args...>;
+
+// Deduction guide for the constructor from an initializer_list and hash_compare/ allocator
+// Deduction guide for an initializer_list, hash_compare and allocator is implicit
+template<typename Key, typename T, typename CompareOrAllocator>
+concurrent_hash_map(std::initializer_list<std::pair<const Key, T>>, CompareOrAllocator)
+-> internal::hash_map_t<concurrent_hash_map, Key, T, CompareOrAllocator>;
+
+#endif /* __TBB_CPP17_DEDUCTION_GUIDES_PRESENT */
+
 template<typename Key, typename T, typename HashCompare, typename A>
 bool concurrent_hash_map<Key,T,HashCompare,A>::lookup( bool op_insert, const Key &key, const T *t, const_accessor *result, bool write, node* (*allocate_node)(node_allocator_type& , const Key&, const T*), node *tmp_n ) {
     __TBB_ASSERT( !result || !result->my_node, NULL );
index 197fafe..e1e1607 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ad4e85d..ea58ef3 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 98b434b..3f8ebe5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -22,6 +22,7 @@
 #define __TBB_concurrent_queue_H
 
 #include "internal/_concurrent_queue_impl.h"
+#include "internal/_allocator_traits.h"
 
 namespace tbb {
 
@@ -36,7 +37,7 @@ class concurrent_queue: public internal::concurrent_queue_base_v3<T> {
     template<typename Container, typename Value> friend class internal::concurrent_queue_iterator;
 
     //! Allocator type
-    typedef typename A::template rebind<char>::other page_allocator_type;
+    typedef typename tbb::internal::allocator_rebind<A, char>::type page_allocator_type;
     page_allocator_type my_allocator;
 
     //! Allocates a block of size n (bytes)
@@ -209,9 +210,9 @@ void concurrent_queue<T,A>::clear() {
 template<typename T, class A = cache_aligned_allocator<T> >
 class concurrent_bounded_queue: public internal::concurrent_queue_base_v8 {
     template<typename Container, typename Value> friend class internal::concurrent_queue_iterator;
+    typedef typename tbb::internal::allocator_rebind<A, char>::type page_allocator_type;
 
     //! Allocator type
-    typedef typename A::template rebind<char>::other page_allocator_type;
     page_allocator_type my_allocator;
 
     typedef typename concurrent_queue_base_v3::padded_page<T> padded_page;
index d8d1d70..45bb24e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -24,6 +24,7 @@
 #ifndef __TBB_concurrent_unordered_map_H
 #define __TBB_concurrent_unordered_map_H
 
+#include "internal/_template_helpers.h"
 #include "internal/_concurrent_unordered_impl.h"
 
 namespace tbb
@@ -39,7 +40,8 @@ protected:
     typedef std::pair<const Key, T> value_type;
     typedef Key key_type;
     typedef Hash_compare hash_compare;
-    typedef typename Allocator::template rebind<value_type>::other allocator_type;
+    typedef typename tbb::internal::allocator_rebind<Allocator, value_type>::type allocator_type;
+
     enum { allow_multimapping = Allow_multimapping };
 
     concurrent_unordered_map_traits() : my_hash_compare() {}
@@ -228,6 +230,45 @@ public:
     }
 };
 
+#if __TBB_CPP17_DEDUCTION_GUIDES_PRESENT
+
+namespace internal {
+using namespace tbb::internal;
+
+template<template<typename...> typename Map, typename Key, typename Element, typename... Args>
+using cu_map_t = Map<
+    Key, Element,
+    std::conditional_t< (sizeof...(Args)>0) && !is_allocator_v< pack_element_t<0, Args...> >,
+                        pack_element_t<0, Args...>, tbb_hash<Key> >,
+    std::conditional_t< (sizeof...(Args)>1) && !is_allocator_v< pack_element_t<1, Args...> >,
+                        pack_element_t<1, Args...>, std::equal_to<Key> >,
+    std::conditional_t< (sizeof...(Args)>0) && is_allocator_v< pack_element_t<sizeof...(Args)-1, Args...> >,
+                        pack_element_t<sizeof...(Args)-1, Args...>, tbb_allocator<std::pair<const Key, Element> > >
+>;
+}
+
+// Deduction guide for the constructor from two iterators
+template<typename I>
+concurrent_unordered_map (I, I)
+-> internal::cu_map_t<concurrent_unordered_map, internal::iterator_key_t<I>, internal::iterator_mapped_t<I>>;
+
+// Deduction guide for the constructor from two iterators and hasher/equality/allocator
+template<typename I, typename... Args>
+concurrent_unordered_map(I, I, size_t, Args...)
+-> internal::cu_map_t<concurrent_unordered_map, internal::iterator_key_t<I>, internal::iterator_mapped_t<I>, Args...>;
+
+// Deduction guide for the constructor from an initializer_list
+template<typename Key, typename Element>
+concurrent_unordered_map(std::initializer_list<std::pair<const Key, Element>>)
+-> internal::cu_map_t<concurrent_unordered_map, Key, Element>;
+
+// Deduction guide for the constructor from an initializer_list and hasher/equality/allocator
+template<typename Key, typename Element, typename... Args>
+concurrent_unordered_map(std::initializer_list<std::pair<const Key, Element>>, size_t, Args...)
+-> internal::cu_map_t<concurrent_unordered_map, Key, Element, Args...>;
+
+#endif /* __TBB_CPP17_DEDUCTION_GUIDES_PRESENT */
+
 template < typename Key, typename T, typename Hasher = tbb::tbb_hash<Key>, typename Key_equality = std::equal_to<Key>,
         typename Allocator = tbb::tbb_allocator<std::pair<const Key, T> > >
 class concurrent_unordered_multimap :
@@ -363,6 +404,30 @@ public:
         : base_type(table, a)
     {}
 };
+
+#if __TBB_CPP17_DEDUCTION_GUIDES_PRESENT
+
+// Deduction guide for the constructor from two iterators
+template<typename I>
+concurrent_unordered_multimap (I, I)
+-> internal::cu_map_t<concurrent_unordered_multimap, internal::iterator_key_t<I>, internal::iterator_mapped_t<I>>;
+
+// Deduction guide for the constructor from two iterators and hasher/equality/allocator
+template<typename I, typename... Args>
+concurrent_unordered_multimap(I, I, size_t, Args...)
+-> internal::cu_map_t<concurrent_unordered_multimap, internal::iterator_key_t<I>, internal::iterator_mapped_t<I>, Args...>;
+
+// Deduction guide for the constructor from an initializer_list
+template<typename Key, typename Element>
+concurrent_unordered_multimap(std::initializer_list<std::pair<const Key, Element>>)
+-> internal::cu_map_t<concurrent_unordered_multimap, Key, Element>;
+
+// Deduction guide for the constructor from an initializer_list and hasher/equality/allocator
+template<typename Key, typename Element, typename... Args>
+concurrent_unordered_multimap(std::initializer_list<std::pair<const Key, Element>>, size_t, Args...)
+-> internal::cu_map_t<concurrent_unordered_multimap, Key, Element, Args...>;
+
+#endif /* __TBB_CPP17_DEDUCTION_GUIDES_PRESENT */
 } // namespace interface5
 
 using interface5::concurrent_unordered_map;
index f8e8387..cdcecda 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -24,6 +24,7 @@
 #ifndef __TBB_concurrent_unordered_set_H
 #define __TBB_concurrent_unordered_set_H
 
+#include "internal/_template_helpers.h"
 #include "internal/_concurrent_unordered_impl.h"
 
 namespace tbb
@@ -39,7 +40,8 @@ protected:
     typedef Key value_type;
     typedef Key key_type;
     typedef Hash_compare hash_compare;
-    typedef typename Allocator::template rebind<value_type>::other allocator_type;
+    typedef typename tbb::internal::allocator_rebind<Allocator, value_type>::type allocator_type;
+
     enum { allow_multimapping = Allow_multimapping };
 
     concurrent_unordered_set_traits() : my_hash_compare() {}
@@ -182,6 +184,45 @@ public:
 
 };
 
+#if __TBB_CPP17_DEDUCTION_GUIDES_PRESENT
+
+namespace internal {
+using namespace tbb::internal;
+
+template <template<typename...> typename Set, typename T, typename... Args>
+using cu_set_t = Set <
+    T,
+    std::conditional_t< (sizeof...(Args)>0) && !is_allocator_v< pack_element_t<0, Args...> >,
+                        pack_element_t<0, Args...>, tbb_hash<T> >,
+    std::conditional_t< (sizeof...(Args)>1) && !is_allocator_v< pack_element_t<1, Args...> >,
+                        pack_element_t<1, Args...>, std::equal_to<T> >,
+    std::conditional_t< (sizeof...(Args)>0) && is_allocator_v< pack_element_t<sizeof...(Args)-1, Args...> >,
+                        pack_element_t<sizeof...(Args)-1, Args...>, tbb_allocator<T> >
+>;
+}
+
+// Deduction guide for the constructor from two iterators
+template<typename I>
+concurrent_unordered_set(I, I)
+-> internal::cu_set_t<concurrent_unordered_set, internal::iterator_value_t<I>>;
+
+// Deduction guide for the constructor from two iterators and hasher/equality/allocator
+template<typename I, typename... Args>
+concurrent_unordered_set(I, I, size_t, Args...)
+-> internal::cu_set_t<concurrent_unordered_set, internal::iterator_value_t<I>, Args...>;
+
+// Deduction guide for the constructor from an initializer_list
+template<typename T>
+concurrent_unordered_set(std::initializer_list<T>)
+-> internal::cu_set_t<concurrent_unordered_set, T>;
+
+// Deduction guide for the constructor from an initializer_list and hasher/equality/allocator
+template<typename T, typename... Args>
+concurrent_unordered_set(std::initializer_list<T>, size_t, Args...)
+-> internal::cu_set_t<concurrent_unordered_set, T, Args...>;
+
+#endif /*__TBB_CPP17_DEDUCTION_GUIDES_PRESENT */
+
 template <typename Key, typename Hasher = tbb::tbb_hash<Key>, typename Key_equality = std::equal_to<Key>,
          typename Allocator = tbb::tbb_allocator<Key> >
 class concurrent_unordered_multiset :
@@ -319,6 +360,30 @@ public:
         : base_type(table, a)
     {}
 };
+
+#if __TBB_CPP17_DEDUCTION_GUIDES_PRESENT
+
+// Deduction guide for the constructor from two iterators
+template<typename I>
+concurrent_unordered_multiset(I, I)
+-> internal::cu_set_t<concurrent_unordered_multiset, internal::iterator_value_t<I>>;
+
+// Deduction guide for the constructor from two iterators and hasher/equality/allocator
+template<typename I, typename... Args>
+concurrent_unordered_multiset(I, I, size_t, Args...)
+-> internal::cu_set_t<concurrent_unordered_multiset, internal::iterator_value_t<I>, Args...>;
+
+// Deduction guide for the constructor from an initializer_list
+template<typename T>
+concurrent_unordered_multiset(std::initializer_list<T>)
+-> internal::cu_set_t<concurrent_unordered_multiset, T>;
+
+// Deduction guide for the constructor from an initializer_list and hasher/equality/allocator
+template<typename T, typename... Args>
+concurrent_unordered_multiset(std::initializer_list<T>, size_t, Args...)
+-> internal::cu_set_t<concurrent_unordered_multiset, T, Args...>;
+
+#endif /* __TBB_CPP17_DEDUCTION_GUIDES_PRESENT */
 } // namespace interface5
 
 using interface5::concurrent_unordered_set;
index e4a9448..5c94583 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -34,6 +34,8 @@
 #include <algorithm>
 #include <iterator>
 
+#include "internal/_allocator_traits.h"
+
 #if _MSC_VER==1500 && !__INTEL_COMPILER
     // VS2008/VC9 seems to have an issue; limits pull in math.h
     #pragma warning( push )
@@ -467,12 +469,9 @@ public:
     template<typename T, class A>
     class allocator_base {
     public:
-        typedef typename A::template
-            rebind<T>::other allocator_type;
+        typedef typename tbb::internal::allocator_rebind<A, T>::type allocator_type;
         allocator_type my_allocator;
-
         allocator_base(const allocator_type &a = allocator_type() ) : my_allocator(a) {}
-
     };
 
 } // namespace internal
@@ -742,9 +741,7 @@ public:
         if(pocma_t::value || this->my_allocator == other.my_allocator) {
             concurrent_vector trash (std::move(*this));
             internal_swap(other);
-            if (pocma_t::value) {
-                this->my_allocator = std::move(other.my_allocator);
-            }
+            tbb::internal::allocator_move_assignment(this->my_allocator, other.my_allocator, pocma_t());
         } else {
             internal_assign(other, sizeof(T), &destroy_array, &move_assign_array, &move_array);
         }
@@ -1002,10 +999,10 @@ public:
 
     //! swap two instances
     void swap(concurrent_vector &vector) {
-        using std::swap;
-        if( this != &vector ) {
+        typedef typename tbb::internal::allocator_traits<A>::propagate_on_container_swap pocs_t;
+        if( this != &vector && (this->my_allocator == vector.my_allocator || pocs_t::value) ) {
             concurrent_vector_base_v3::internal_swap(static_cast<concurrent_vector_base_v3&>(vector));
-            swap(this->my_allocator, vector.my_allocator);
+            tbb::internal::allocator_swap(this->my_allocator, vector.my_allocator, pocs_t());
         }
     }
 
@@ -1042,7 +1039,13 @@ private:
         internal_resize( n, sizeof(T), max_size(), static_cast<const void*>(p), &destroy_array, p? &initialize_array_by : &initialize_array );
     }
 
-    //! helper class
+    //! True/false function override helper
+    /* Functions declarations:
+     *     void foo(is_integer_tag<true>*);
+     *     void foo(is_integer_tag<false>*);
+     * Usage example:
+     *     foo(static_cast<is_integer_tag<std::numeric_limits<T>::is_integer>*>(0));
+     */
     template<bool B> class is_integer_tag;
 
     //! assign integer items by copying when arguments are treated as iterators. See C++ Standard 2003 23.1.1p9
index 8c4c9c7..13dc414 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index cd9c18a..d12a178 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ee8c39d..0a5cfc0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 890ce76..bfb1e6b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6c24900..4a363f8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f2a70c5..d00360d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7a8d0c3..0c9a23c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
 #ifndef __TBB_global_control_H
 #define __TBB_global_control_H
 
-#if !TBB_PREVIEW_GLOBAL_CONTROL && !__TBB_BUILD
-#error Set TBB_PREVIEW_GLOBAL_CONTROL before including global_control.h
-#endif
-
 #include "tbb_stddef.h"
 
 namespace tbb {
index ad157bb..7bbb672 100644 (file)
@@ -19,7 +19,7 @@ Include files for Intel&reg; Threading Building Blocks classes and functions.
 <HR>
 <A HREF="../index.html">Up to parent directory</A>
 <p></p>
-Copyright &copy; 2005-2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2005-2019 Intel Corporation.  All Rights Reserved.
 <P></P>
 Intel is a registered trademark or trademark of Intel Corporation
 or its subsidiaries in the United States and other countries.
index 2a85da6..420162e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
diff --git a/include/tbb/internal/_allocator_traits.h b/include/tbb/internal/_allocator_traits.h
new file mode 100644 (file)
index 0000000..ee11beb
--- /dev/null
@@ -0,0 +1,113 @@
+/*
+    Copyright (c) 2019 Intel Corporation
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+
+
+
+*/
+
+#ifndef __TBB_allocator_traits_H
+#define __TBB_allocator_traits_H
+
+#include "../tbb_stddef.h" // true/false_type
+
+#if __TBB_ALLOCATOR_TRAITS_PRESENT
+#include <memory> // for allocator_traits
+#endif
+
+#if __TBB_CPP11_RVALUE_REF_PRESENT
+#include <utility> // for std::move
+#endif
+
+// For allocator_swap helper
+#include __TBB_STD_SWAP_HEADER
+
+namespace tbb {
+namespace internal {
+
+//! Internal implementation of allocator traits, propagate_on_* use internal boolean_constant.
+//! In order to avoid code duplication, check what implementation of boolean constant will likely be passed.
+#if __TBB_ALLOCATOR_TRAITS_PRESENT
+typedef std::true_type traits_true_type;
+typedef std::false_type traits_false_type;
+#else
+typedef tbb::internal::true_type traits_true_type;
+typedef tbb::internal::false_type traits_false_type;
+#endif
+
+#if __TBB_CPP11_RVALUE_REF_PRESENT
+//! Move assignment implementation for allocator if propagate_on_container_move_assignment == true_type.
+//! Noop if pocma == false_type.
+template <typename MyAlloc, typename OtherAlloc>
+inline void allocator_move_assignment(MyAlloc& my_allocator, OtherAlloc& other_allocator, traits_true_type) {
+    my_allocator = std::move(other_allocator);
+}
+template <typename MyAlloc, typename OtherAlloc>
+inline void allocator_move_assignment(MyAlloc&, OtherAlloc&, traits_false_type) { /* NO MOVE */ }
+#endif
+
+//! Swap implementation for allocators if propagate_on_container_swap == true_type.
+//! Noop if pocs == false_type.
+template <typename MyAlloc, typename OtherAlloc>
+inline void allocator_swap(MyAlloc& my_allocator, OtherAlloc& other_allocator, traits_true_type) {
+    using std::swap;
+    swap(my_allocator, other_allocator);
+}
+template <typename MyAlloc, typename OtherAlloc>
+inline void allocator_swap(MyAlloc&, OtherAlloc&, traits_false_type) { /* NO SWAP */ }
+
+#if __TBB_ALLOCATOR_TRAITS_PRESENT
+using std::allocator_traits;
+#else
+//! Internal allocator_traits implementation, which relies on C++03 standard
+//! [20.1.5] allocator requirements
+template<typename Alloc>
+struct allocator_traits {
+    // C++03 allocator doesn't have to be assignable or swappable, therefore
+    // define these traits as false_type to do not require additional operations
+    // that are not supposed to be in.
+    typedef tbb::internal::false_type propagate_on_container_move_assignment;
+    typedef tbb::internal::false_type propagate_on_container_copy_assignment;
+    typedef tbb::internal::false_type propagate_on_container_swap;
+
+    typedef Alloc allocator_type;
+    typedef typename allocator_type::value_type value_type;
+
+    typedef typename allocator_type::pointer pointer;
+    typedef typename allocator_type::const_pointer const_pointer;
+    typedef typename allocator_type::difference_type difference_type;
+    typedef typename allocator_type::size_type size_type;
+
+    template <typename U> struct rebind_alloc {
+        typedef typename Alloc::template rebind<U>::other other;
+    };
+};
+#endif // __TBB_ALLOCATOR_TRAITS_PRESENT
+
+//! C++03/C++11 compliant rebind helper, even if no std::allocator_traits available
+//! or rebind is not defined for allocator type
+template<typename Alloc, typename T>
+struct allocator_rebind {
+#if __TBB_ALLOCATOR_TRAITS_PRESENT
+    typedef typename allocator_traits<Alloc>::template rebind_alloc<T> type;
+#else
+    typedef typename allocator_traits<Alloc>::template rebind_alloc<T>::other type;
+#endif
+};
+
+}} // namespace tbb::internal
+
+#endif // __TBB_allocator_traits_H
+
index 172588a..2f7c292 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2e68e2f..2a0fbfb 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -44,6 +44,7 @@
     #include <initializer_list>
 #endif
 
+#include "_allocator_traits.h"
 #include "_tbb_hash_compare_impl.h"
 
 namespace tbb {
@@ -185,17 +186,20 @@ class split_ordered_list
 {
 public:
     typedef split_ordered_list<T, Allocator> self_type;
-    typedef typename Allocator::template rebind<T>::other allocator_type;
+
+    typedef typename tbb::internal::allocator_rebind<Allocator, T>::type allocator_type;
+
     struct node;
     typedef node *nodeptr_t;
 
-    typedef typename allocator_type::size_type size_type;
-    typedef typename allocator_type::difference_type difference_type;
-    typedef typename allocator_type::pointer pointer;
-    typedef typename allocator_type::const_pointer const_pointer;
-    typedef typename allocator_type::reference reference;
-    typedef typename allocator_type::const_reference const_reference;
-    typedef typename allocator_type::value_type value_type;
+    typedef typename tbb::internal::allocator_traits<allocator_type>::value_type value_type;
+    typedef typename tbb::internal::allocator_traits<allocator_type>::size_type size_type;
+    typedef typename tbb::internal::allocator_traits<allocator_type>::difference_type difference_type;
+    typedef typename tbb::internal::allocator_traits<allocator_type>::pointer pointer;
+    typedef typename tbb::internal::allocator_traits<allocator_type>::const_pointer const_pointer;
+    // No support for reference/const_reference in allocator traits
+    typedef value_type& reference;
+    typedef const value_type& const_reference;
 
     typedef solist_iterator<self_type, const value_type> const_iterator;
     typedef solist_iterator<self_type, value_type> iterator;
@@ -639,7 +643,7 @@ private:
 #endif
     }
 
-    typename allocator_type::template rebind<node>::other my_node_allocator;  // allocator object for nodes
+    typename tbb::internal::allocator_rebind<allocator_type, node>::type my_node_allocator; // allocator object for nodes
     size_type                                             my_element_count;   // Total item count, not counting dummy nodes
     nodeptr_t                                             my_head;            // pointer to head node
 };
@@ -661,12 +665,15 @@ protected:
     typedef typename Traits::allocator_type allocator_type;
     typedef typename hash_compare::hasher hasher;
     typedef typename hash_compare::key_equal key_equal;
-    typedef typename allocator_type::pointer pointer;
-    typedef typename allocator_type::const_pointer const_pointer;
-    typedef typename allocator_type::reference reference;
-    typedef typename allocator_type::const_reference const_reference;
-    typedef typename allocator_type::size_type size_type;
-    typedef typename allocator_type::difference_type difference_type;
+
+    typedef typename tbb::internal::allocator_traits<allocator_type>::size_type size_type;
+    typedef typename tbb::internal::allocator_traits<allocator_type>::difference_type difference_type;
+    typedef typename tbb::internal::allocator_traits<allocator_type>::pointer pointer;
+    typedef typename tbb::internal::allocator_traits<allocator_type>::const_pointer const_pointer;
+    // No support for reference/const_reference in allocator
+    typedef typename allocator_type::value_type& reference;
+    typedef const typename allocator_type::value_type& const_reference;
+
     typedef split_ordered_list<value_type, typename Traits::allocator_type> solist_t;
     typedef typename solist_t::nodeptr_t nodeptr_t;
     // Iterators that walk the entire split-order list, including dummy nodes
@@ -1507,7 +1514,7 @@ private:
     // Shared variables
     atomic<size_type>                                             my_number_of_buckets;       // Current table size
     solist_t                                                      my_solist;                  // List where all the elements are kept
-    typename allocator_type::template rebind<raw_iterator>::other my_allocator;               // Allocator object for segments
+    typename tbb::internal::allocator_rebind<allocator_type, raw_iterator>::type my_allocator; // Allocator object for segments
     float                                                         my_maximum_bucket_size;     // Maximum size of the bucket
     atomic<raw_iterator*>                                         my_buckets[pointers_per_table]; // The segment table
 };
index cb24998..f7a734a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 25380a9..45b7f1c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -367,6 +367,9 @@ public:
         : continue_receiver(
             __TBB_FLOW_GRAPH_PRIORITY_ARG1(number_of_predecessors, tbb::flow::internal::no_priority)
         )
+          // Since decrementer does not make use of possibly unconstructed owner inside its
+          // constructor, my_node can be directly initialized with 'this' pointer passed from the
+          // owner, hence making method 'set_owner' needless.
         , my_node(NULL)
     {}
     void set_owner( T *node ) { my_node = node; }
index de22b8c..62f829d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0aadf44..ed1e25c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 01a6fd3..28048aa 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 546d264..7269fa0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index bd2fe64..755e103 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7ed776a..a000464 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index dae3e7a..6a0f572 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e054626..1f3797f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 68ca515..957513d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e2d1c9f..688f1fa 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8d098a4..dcf940a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 68ae28f..aeec190 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2bcbded..098312d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6172bc4..049a6b9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 24021d0..964ec5a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 938c949..9a5eadc 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 09af157..6a299bc 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
 
 #include <utility>
 #include <cstddef>
+#include "../tbb_config.h"
+#if __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT && __TBB_CPP11_TEMPLATE_ALIASES_PRESENT
+#include <type_traits>
+#endif
+#if __TBB_CPP11_PRESENT
+#include <iterator>
+#include <memory> // allocator_traits
+#endif
 
 namespace tbb { namespace internal {
 
@@ -65,6 +73,19 @@ template<typename U> struct is_ref<U&> { static const bool value = true; };
 template<typename...> struct void_t { typedef void type; };
 #endif
 
+#if __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT && __TBB_CPP11_TEMPLATE_ALIASES_PRESENT
+
+// Generic SFINAE helper for expression checks, based on the idea demonstrated in ISO C++ paper n4502
+template<typename T, typename, template<typename> class... Checks>
+struct supports_impl { typedef std::false_type type; };
+template<typename T, template<typename> class... Checks>
+struct supports_impl<T, typename void_t<Checks<T>...>::type, Checks...> { typedef std::true_type type; };
+
+template<typename T, template<typename> class... Checks>
+using supports = typename supports_impl<T, void, Checks...>::type;
+
+#endif /* __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT && __TBB_CPP11_TEMPLATE_ALIASES_PRESENT */
+
 #if __TBB_CPP11_RVALUE_REF_PRESENT && __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT
 
 //! Allows to store a function parameter pack as a variable and later pass it to another function
@@ -176,6 +197,53 @@ using make_index_sequence = typename tbb::internal::make_index_sequence_impl<N>:
 
 #endif /* __TBB_CPP14_INTEGER_SEQUENCE_PRESENT */
 
+#if __TBB_CPP11_PRESENT
+
+template< typename Iter >
+using iterator_value_t = typename std::iterator_traits<Iter>::value_type;
+
+template< typename Iter >
+using iterator_key_t = typename std::remove_const<typename iterator_value_t<Iter>::first_type>::type;
+
+template< typename Iter >
+using iterator_mapped_t = typename iterator_value_t<Iter>::second_type;
+
+template< typename A > using value_type = typename A::value_type;
+template< typename A > using alloc_ptr_t = typename std::allocator_traits<A>::pointer;
+template< typename A > using has_allocate = decltype(std::declval<alloc_ptr_t<A>&>() = std::declval<A>().allocate(0));
+template< typename A > using has_deallocate = decltype(std::declval<A>().deallocate(std::declval<alloc_ptr_t<A>>(), 0));
+
+// value_type should be checked first because it can be used in other checks (via allocator_traits)
+template< typename T >
+using is_allocator = supports<T, value_type, has_allocate, has_deallocate>;
+
+#if __TBB_CPP14_VARIABLE_TEMPLATES_PRESENT
+
+template< typename T >
+static constexpr bool is_allocator_v = is_allocator<T>::value;
+
+#endif /*__TBB_CPP14_VARIABLE_TEMPLATES */
+
+template< std::size_t N, typename... Args >
+struct pack_element {
+    using type = void;
+};
+
+template< std::size_t N, typename T, typename... Args >
+struct pack_element<N, T, Args...> {
+    using type = typename pack_element<N - 1, Args...>::type;
+};
+
+template< typename T, typename... Args >
+struct pack_element<0, T, Args...> {
+    using type = T;
+};
+
+template< std::size_t N, typename... Args >
+using pack_element_t = typename pack_element<N, Args...>::type;
+
+#endif /* __TBB_CPP11_PRESENT */
+
 } } // namespace internal, namespace tbb
 
 #endif /* __TBB_template_helpers_H */
index f011799..52b0cc0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c268b93..b7ff582 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 85b3032..5967db5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2017-2018 Intel Corporation
+    Copyright (c) 2017-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -35,6 +35,7 @@ namespace tbb {
 
 template <typename IntType>
 class counting_iterator {
+    __TBB_STATIC_ASSERT(std::numeric_limits<IntType>::is_integer, "Cannot instantiate counting_iterator with a non-integer type");
 public:
     typedef typename std::make_signed<IntType>::type difference_type;
     typedef IntType value_type;
@@ -42,7 +43,8 @@ public:
     typedef const IntType& reference;
     typedef std::random_access_iterator_tag iterator_category;
 
-    explicit counting_iterator(IntType init): my_counter(init) { __TBB_STATIC_ASSERT(std::numeric_limits<IntType>::is_integer, "Integer required."); }
+    counting_iterator(): my_counter() {}
+    explicit counting_iterator(IntType init): my_counter(init) {}
 
     reference operator*() const { return my_counter; }
     value_type operator[](difference_type i) const { return *(*this + i); }
@@ -124,6 +126,7 @@ struct make_references {
 
 template <typename... Types>
 class zip_iterator {
+    __TBB_STATIC_ASSERT(sizeof...(Types), "Cannot instantiate zip_iterator with empty template parameter pack");
     static const std::size_t num_types = sizeof...(Types);
     typedef typename std::tuple<Types...> it_types;
 public:
@@ -133,7 +136,13 @@ public:
     typedef std::tuple<typename std::iterator_traits<Types>::pointer...> pointer;
     typedef std::random_access_iterator_tag iterator_category;
 
+    zip_iterator(): my_it() {}
     explicit zip_iterator(Types... args): my_it(std::make_tuple(args...)) {}
+    zip_iterator(const zip_iterator& input) : my_it(input.my_it) {}
+    zip_iterator& operator=(const zip_iterator& input) {
+        my_it = input.my_it;
+        return *this;
+    }
 
     reference operator*() const {
         return tbb::internal::make_references<reference>()(my_it, tbb::internal::make_index_sequence<num_types>());
index 7fac0f2..3a67fde 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 390c1c2..740cfd3 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7ace018..921f00f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 78b1a96..1b7a962 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 961d88b..229eb44 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1307741..33f6c0a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7c5e034..d803845 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 917c957..99dd2b6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0510ecc..739f971 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5bd491d..8572e5d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f68091f..a61294c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0b7dd37..b73f7a1 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index aab7567..6edd66c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d11da0a..402492a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 613acaf..8a98571 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d0548ef..956499a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index b7fccb4..90c6156 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 169d14f..0b1e7dd 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2103c90..46365b6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 26c64c4..8c09e03 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c499be3..67a2fd2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 84cf658..11cb92d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c762b1c..b37da01 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e5979f5..3e4b3ce 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index bfd8722..8b14976 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d912fab..7e97024 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 07fa6a7..e374904 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9429d19..c1c3ecb 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 73da6f3..333e08e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 753bf3c..7f20c6f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index be9f579..c954b93 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index fed7a8b..cb4469e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5521da5..e67385a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7092499..f3091bb 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9dd8444..17c79bb 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f2546d5..232c1c8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ffebee5..11badb0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9db7291..dd50ce6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6656544..8e071e5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -193,6 +193,7 @@ void *pool_aligned_realloc(MemoryPool* mPool, void *ptr, size_t size, size_t ali
 bool  pool_reset(MemoryPool* memPool);
 bool  pool_free(MemoryPool *memPool, void *object);
 MemoryPool *pool_identify(void *object);
+size_t pool_msize(MemoryPool *memPool, void *object);
 
 } // namespace rml
 
@@ -208,7 +209,11 @@ MemoryPool *pool_identify(void *object);
 #endif
 
 #if __TBB_ALLOCATOR_CONSTRUCT_VARIADIC
- #include <utility> // std::forward
+#include <utility> // std::forward
+#endif
+
+#if __TBB_CPP17_MEMORY_RESOURCE_PRESENT
+#include <memory_resource>
 #endif
 
 namespace tbb {
@@ -315,6 +320,48 @@ inline bool operator==( const scalable_allocator<T>&, const scalable_allocator<U
 template<typename T, typename U>
 inline bool operator!=( const scalable_allocator<T>&, const scalable_allocator<U>& ) {return false;}
 
+#if __TBB_CPP17_MEMORY_RESOURCE_PRESENT
+
+namespace internal {
+
+//! C++17 memory resource implementation for scalable allocator
+//! ISO C++ Section 23.12.2
+class scalable_resource_impl : public std::pmr::memory_resource {
+private:
+    void* do_allocate(size_t bytes, size_t alignment) override {
+        void* ptr = scalable_aligned_malloc( bytes, alignment );
+        if (!ptr) {
+            throw_exception(std::bad_alloc());
+        }
+        return ptr;
+    }
+
+    void do_deallocate(void* ptr, size_t /*bytes*/, size_t /*alignment*/) override {
+        scalable_free(ptr);
+    }
+
+    //! Memory allocated by one instance of scalable_resource_impl could be deallocated by any
+    //! other instance of this class
+    bool do_is_equal(const std::pmr::memory_resource& other) const noexcept override {
+        return this == &other ||
+#if __TBB_USE_OPTIONAL_RTTI
+            dynamic_cast<const scalable_resource_impl*>(&other) != NULL;
+#else
+            false;
+#endif
+    }
+};
+
+} // namespace internal
+
+//! Global scalable allocator memory resource provider
+inline std::pmr::memory_resource* scalable_memory_resource() noexcept {
+    static tbb::internal::scalable_resource_impl scalable_res;
+    return &scalable_res;
+}
+
+#endif /* __TBB_CPP17_MEMORY_RESOURCE_PRESENT */
+
 } // namespace tbb
 
 #if _MSC_VER
index 76bbf89..2bd5c86 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 835ca6c..a81e6a5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1e7d84f..6b2fb57 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -49,7 +49,9 @@ namespace internal { //< @cond INTERNAL
         task* self;
         task& parent;
     public:
-        explicit allocate_additional_child_of_proxy( task& parent_ ) : self(NULL), parent(parent_) {}
+        explicit allocate_additional_child_of_proxy( task& parent_ ) : self(NULL), parent(parent_) {
+            suppress_unused_warning( self );
+        }
         task& __TBB_EXPORTED_METHOD allocate( size_t size ) const;
         void __TBB_EXPORTED_METHOD free( task& ) const;
     };
index fcdf6cd..f8e9b85 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 42fd724..9874b4f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c559fd0..6f36330 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a2020d7..c2a4476 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8908b86..39857db 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -54,9 +54,7 @@
 #include "critical_section.h"
 #include "enumerable_thread_specific.h"
 #include "flow_graph.h"
-#if TBB_PREVIEW_GLOBAL_CONTROL
 #include "global_control.h"
-#endif
 #include "iterators.h"
 #include "mutex.h"
 #include "null_mutex.h"
index 162e4e3..3dc6c33 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 07affd7..bfb8938 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     #include <cstddef>
 #endif
 
-// note that when ICC or Clang is in use, __TBB_GCC_VERSION might not fully match
+// Note that when ICC or Clang is in use, __TBB_GCC_VERSION might not fully match
 // the actual GCC version on the system.
 #define __TBB_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
 
-// Since GNU libstdc++ does not have a convenient macro for its version,
-// we rely on the version of GCC or the user-specified macro below.
-// The format of TBB_USE_GLIBCXX_VERSION should match the __TBB_GCC_VERSION above,
-// e.g. it should be set to 40902 for libstdc++ coming with GCC 4.9.2.
+// Prior to GCC 7, GNU libstdc++ did not have a convenient version macro.
+// Therefore we use different ways to detect its version.
 #ifdef TBB_USE_GLIBCXX_VERSION
+// The version is explicitly specified in our public TBB_USE_GLIBCXX_VERSION macro.
+// Its format should match the __TBB_GCC_VERSION above, e.g. 70301 for libstdc++ coming with GCC 7.3.1.
 #define __TBB_GLIBCXX_VERSION TBB_USE_GLIBCXX_VERSION
+#elif _GLIBCXX_RELEASE && _GLIBCXX_RELEASE != __GNUC__
+// Reported versions of GCC and libstdc++ do not match; trust the latter
+#define __TBB_GLIBCXX_VERSION (_GLIBCXX_RELEASE*10000)
 #elif __GLIBCPP__ || __GLIBCXX__
+// The version macro is not defined or matches the GCC version; use __TBB_GCC_VERSION
 #define __TBB_GLIBCXX_VERSION __TBB_GCC_VERSION
-//TODO: analyze __GLIBCXX__ instead of __TBB_GCC_VERSION ?
 #endif
 
 #if __clang__
     #define __TBB_ALIGNAS_PRESENT                           (__INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1500)
     #define __TBB_CPP11_TEMPLATE_ALIASES_PRESENT            (__INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1210)
     #define __TBB_CPP14_INTEGER_SEQUENCE_PRESENT            (__cplusplus >= 201402L)
-    #define __TBB_CPP17_DEDUCTION_GUIDES_PRESENT            __INTEL_COMPILER > 1900
+    #define __TBB_CPP14_VARIABLE_TEMPLATES_PRESENT          (__cplusplus >= 201402L)
+    #define __TBB_CPP17_DEDUCTION_GUIDES_PRESENT            (__INTEL_COMPILER > 1900)
     #define __TBB_CPP17_INVOKE_RESULT_PRESENT               (__cplusplus >= 201703L)
 #elif __clang__
 /** TODO: these options need to be rechecked **/
     #define __TBB_ALIGNAS_PRESENT                           __has_feature(cxx_alignas)
     #define __TBB_CPP11_TEMPLATE_ALIASES_PRESENT            __has_feature(cxx_alias_templates)
     #define __TBB_CPP14_INTEGER_SEQUENCE_PRESENT            (__cplusplus >= 201402L)
+    #define __TBB_CPP14_VARIABLE_TEMPLATES_PRESENT          (__has_feature(cxx_variable_templates))
     #define __TBB_CPP17_DEDUCTION_GUIDES_PRESENT            (__has_feature(__cpp_deduction_guides))
     #define __TBB_CPP17_INVOKE_RESULT_PRESENT               (__has_feature(__cpp_lib_is_invocable))
 #elif __GNUC__
     #define __TBB_ALIGNAS_PRESENT                           (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40800)
     #define __TBB_CPP11_TEMPLATE_ALIASES_PRESENT            (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40700)
     #define __TBB_CPP14_INTEGER_SEQUENCE_PRESENT            (__cplusplus >= 201402L     && __TBB_GCC_VERSION >= 50000)
-    #define __TBB_CPP17_DEDUCTION_GUIDES_PRESENT            (__cpp_deduction_guides >= 201606)
+    #define __TBB_CPP14_VARIABLE_TEMPLATES_PRESENT          (__cplusplus >= 201402L     && __TBB_GCC_VERSION >= 50000)
+    #define __TBB_CPP17_DEDUCTION_GUIDES_PRESENT            (__cpp_deduction_guides >= 201606L)
     #define __TBB_CPP17_INVOKE_RESULT_PRESENT               (__cplusplus >= 201703L     && __TBB_GCC_VERSION >= 70000)
 #elif _MSC_VER
     // These definitions are also used with Intel C++ Compiler in "default" mode (__INTEL_CXX11_MODE__ == 0);
     #define __TBB_ALIGNAS_PRESENT                           (_MSC_VER >= 1900)
     #define __TBB_CPP11_TEMPLATE_ALIASES_PRESENT            (_MSC_VER >= 1800)
     #define __TBB_CPP14_INTEGER_SEQUENCE_PRESENT            (_MSC_VER >= 1900)
-    #define __TBB_CPP17_DEDUCTION_GUIDES_PRESENT            (_MSVC_LANG >= 201703L)
-    #define __TBB_CPP17_INVOKE_RESULT_PRESENT               (__TBB_MSVC_CPP_VER >= 201703L && _MSC_VER >= 1914)
+    /* Variable templates are supported in VS2015 Update 2 or later */
+    #define __TBB_CPP14_VARIABLE_TEMPLATES_PRESENT          (_MSC_FULL_VER >= 190023918 && (!__INTEL_COMPILER || __INTEL_COMPILER >= 1700))
+    #define __TBB_CPP17_DEDUCTION_GUIDES_PRESENT            (_MSVC_LANG >= 201703L && _MSC_VER >= 1914)
+    #define __TBB_CPP17_INVOKE_RESULT_PRESENT               (_MSVC_LANG >= 201703L && _MSC_VER >= 1911)
 #else
     #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT          0
     #define __TBB_CPP11_RVALUE_REF_PRESENT                  0
     #define __TBB_ALIGNAS_PRESENT                           0
     #define __TBB_CPP11_TEMPLATE_ALIASES_PRESENT            0
     #define __TBB_CPP14_INTEGER_SEQUENCE_PRESENT            (__cplusplus >= 201402L)
+    #define __TBB_CPP14_VARIABLE_TEMPLATES_PRESENT          0
     #define __TBB_CPP17_DEDUCTION_GUIDES_PRESENT            0
     #define __TBB_CPP17_INVOKE_RESULT_PRESENT               0
 #endif
 
 // In GCC, std::move_if_noexcept appeared later than noexcept
 #define __TBB_MOVE_IF_NOEXCEPT_PRESENT                      (__TBB_NOEXCEPT_PRESENT && (__TBB_GLIBCXX_VERSION >= 40700 || _MSC_VER >= 1900 || _LIBCPP_VERSION))
-#define __TBB_ALLOCATOR_TRAITS_PRESENT                      (__cplusplus >= 201103L && _LIBCPP_VERSION  || _MSC_VER >= 1700 ||  \
+#define __TBB_ALLOCATOR_TRAITS_PRESENT                      (__cplusplus >= 201103L && _LIBCPP_VERSION  || _MSC_VER >= 1800 ||  \
                                                             __GXX_EXPERIMENTAL_CXX0X__ && __TBB_GLIBCXX_VERSION >= 40700 && !(__TBB_GLIBCXX_VERSION == 40700 && __TBB_DEFINE_MIC))
 #define __TBB_MAKE_EXCEPTION_PTR_PRESENT                    (__TBB_EXCEPTION_PTR_PRESENT && (_MSC_VER >= 1700 || __TBB_GLIBCXX_VERSION >= 40600 || _LIBCPP_VERSION))
 
 
 #define __TBB_CPP17_UNCAUGHT_EXCEPTIONS_PRESENT             (_MSC_VER >= 1900 || __GLIBCXX__ && __cpp_lib_uncaught_exceptions \
                                                             || _LIBCPP_VERSION >= 3700 && (!__TBB_MACOS_TARGET_VERSION || __TBB_MACOS_TARGET_VERSION >= 101200))
-
+// TODO: wait when memory_resource will be fully supported in clang and define the right macro
+// Currently it is in experimental stage since 6 version.
+#define __TBB_CPP17_MEMORY_RESOURCE_PRESENT                 (_MSC_VER >= 1913 && (_MSVC_LANG > 201402L || __cplusplus > 201402L) || \
+                                                            __GLIBCXX__ && __cpp_lib_memory_resource >= 201603)
+#define __TBB_CPP17_HW_INTERFERENCE_SIZE_PRESENT            (_MSC_VER >= 1911)
 // std::swap is in <utility> only since C++11, though MSVC had it at least since VS2005
 #if _MSC_VER>=1400 || _LIBCPP_VERSION || __GXX_EXPERIMENTAL_CXX0X__
 #define __TBB_STD_SWAP_HEADER <utility>
index be1bb11..2fe4663 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index af0ec6d..f5d571b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e79d82e..9724202 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index bc22a83..2f212fd 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 83803ce..07534ba 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -26,7 +26,7 @@
 #define TBB_VERSION_MINOR 0
 
 // Engineering-focused interface version
-#define TBB_INTERFACE_VERSION 11003
+#define TBB_INTERFACE_VERSION 11004
 #define TBB_INTERFACE_VERSION_MAJOR TBB_INTERFACE_VERSION/1000
 
 // The oldest major interface version still supported
@@ -431,8 +431,8 @@ private:
 // Following is a set of classes and functions typically used in compile-time "metaprogramming".
 // TODO: move all that to a separate header
 
-#if __TBB_ALLOCATOR_TRAITS_PRESENT || __TBB_CPP11_SMART_POINTERS_PRESENT
-#include <memory> // for allocator_traits, unique_ptr
+#if __TBB_CPP11_SMART_POINTERS_PRESENT
+#include <memory> // for unique_ptr
 #endif
 
 #if __TBB_CPP11_RVALUE_REF_PRESENT || __TBB_CPP11_DECLTYPE_PRESENT || _LIBCPP_VERSION
@@ -472,15 +472,6 @@ struct bool_constant {
 typedef bool_constant<true> true_type;
 typedef bool_constant<false> false_type;
 
-#if __TBB_ALLOCATOR_TRAITS_PRESENT
-using std::allocator_traits;
-#else
-template<typename allocator>
-struct allocator_traits{
-    typedef tbb::internal::false_type propagate_on_container_move_assignment;
-};
-#endif
-
 //! A template to select either 32-bit or 64-bit constant as compile time, depending on machine word size.
 template <unsigned u, unsigned long long ull >
 struct select_size_t_constant {
index 75d18b9..04e8a96 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 66a8f9e..7e4b53f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -63,4 +63,7 @@ struct __TBB_malloc_proxy_caller {
 
 #endif // _MSC_VER
 
+/* Public Windows API */
+extern "C" int TBB_malloc_replacement_log(char *** function_replacement_log_ptr);
+
 #endif //__TBB_tbbmalloc_proxy_H
index de49f9e..28a0b1d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 46e2103..f18a1a9 100644 (file)
@@ -40,7 +40,7 @@ To port Intel TBB to a new platform, operating system or architecture, see the <
 </DL>
 <HR>
 <p></p>
-Copyright &copy; 2005-2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2005-2019 Intel Corporation.  All Rights Reserved.
 <P></P>
 Intel is a registered trademark or trademark of Intel Corporation
 or its subsidiaries in the United States and other countries.
index 01bdd88..9078195 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 6ffa191..cf3241e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index e92cb44..e58412a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2018 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 7a6ff8e..2cafdf3 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #
-# Copyright (c) 2016-2018 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index e9d3096..a475388 100644 (file)
@@ -74,7 +74,7 @@ Red Hat* Enterprise Linux* 7.
 <HR>
 <A href="../index.html">Up to parent directory</A>
 <p></p>
-Copyright &copy; 2016-2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2016-2019 Intel Corporation.  All Rights Reserved.
 <P></P>
 Intel is a registered trademark or trademark of Intel Corporation
 or its subsidiaries in the United States and other countries.
index ef55ad9..5504d24 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2018 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 3d72fa7..6249ac0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2017-2018 Intel Corporation
+    Copyright (c) 2017-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d21325c..de6afe4 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2017-2018 Intel Corporation
+    Copyright (c) 2017-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 82f128e..5e6b336 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2017-2018 Intel Corporation
+    Copyright (c) 2017-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index bb6c2e2..e281028 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #
-# Copyright (c) 2016-2018 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 1e1d7d5..6eddad5 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #
-# Copyright (c) 2016-2018 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 2c125c1..506430f 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #
-# Copyright (c) 2016-2018 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 88e3d87..a923be7 100644 (file)
@@ -1,6 +1,6 @@
 %pythonbegin %{
 #
-# Copyright (c) 2016-2018 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -31,7 +31,6 @@ __all__ = ["task_arena", "task_group", "task_scheduler_init", "global_control",
 #endif
 
 %{
-#define TBB_PREVIEW_GLOBAL_CONTROL 1
 #define TBB_PREVIEW_WAITING_FOR_WORKERS 1
 #include <tbb/tbb.h>
 #include <tbb/compat/condition_variable>
index 360ec53..0ebdff7 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #
-# Copyright (c) 2016-2018 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 7b78faa..04dbffb 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #
-# Copyright (c) 2016-2018 Intel Corporation
+# Copyright (c) 2016-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 17cedc6..a4b685c 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 11cefe9..43d7e83 100644 (file)
@@ -66,7 +66,7 @@ This directory contains the source code and unit tests for Intel&reg; Threading
 <HR/>
 <A HREF="../index.html">Up to parent directory</A>
 <p></p>
-Copyright &copy; 2005-2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2005-2019 Intel Corporation.  All Rights Reserved.
 <P></P>
 Intel is a registered trademark or trademark of Intel Corporation
 or its subsidiaries in the United States and other countries.
index 4f6cf1f..e1443e7 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f6165bf..5bc7bb0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index edc64b1..1a67c8f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c176699..f398cd2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2f72013..c87a811 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 27a55d1..6fb5e13 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6607e7e..ae9a7e0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 666eb45..132713b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a575048..b0bdb58 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 90c94da..4c29e25 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index b569130..a23f17f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 76e0d3e..c55f2d5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6acf0f7..dc64e32 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 168883a..7b4b393 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d9910cc..4f94ddd 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index dea3283..5988593 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 97b92ef..be00016 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f3e2020..47d68c9 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# Copyright (c) 2005-2018 Intel Corporation
+# Copyright (c) 2005-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
index 8b660c2..579f3de 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c60aa37..3dec443 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 48a3d7e..126958f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a4c9b94..36c5d14 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4056330..c98361c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e22f2ac..7c8c33b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9f1ca2e..7a37cda 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 17dcd28..1d452df 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 353a854..0846329 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 379df27..f5b43e6 100644 (file)
@@ -112,7 +112,7 @@ In addition, a size of the source array correlates with input rates in order to
 <HR/>
 <A HREF="../index.html">Up to parent directory</A>
 <p></p>
-Copyright &copy; 2005-2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2005-2019 Intel Corporation.  All Rights Reserved.
 <P></P>
 Intel is a registered trademark or trademark of Intel Corporation
 or its subsidiaries in the United States and other countries.
index 7ed9894..b7b9d63 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index cec2e33..7bf468a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d34199f..e88a7b8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 67e4c01..f882109 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8771a77..a973103 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 93e2e35..8329f6a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0a652b7..8e7b50e 100644 (file)
@@ -31,7 +31,7 @@ This directory has source code that must be statically linked into an RML client
 <HR/>
 <A HREF="../index.html">Up to parent directory</A>
 <p></p>
-Copyright &copy; 2005-2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2005-2019 Intel Corporation.  All Rights Reserved.
 <P></P>
 Intel is a registered trademark or trademark of Intel Corporation
 or its subsidiaries in the United States and other countries.
index 0af2d5c..f7d591a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2da09a3..ce72ea0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 331e2ca..b4d6871 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 500870d..bf9c3d3 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e1991c1..d80ffbd 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9978197..83641cb 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5c080a2..5e21841 100644 (file)
@@ -18,7 +18,7 @@ This directory has the include files for the Resource Management Layer (RML).
 <HR>
 <A HREF="../index.html">Up to parent directory</A>
 <p></p>
-Copyright &copy; 2005-2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2005-2019 Intel Corporation.  All Rights Reserved.
 <P></P>
 Intel is a registered trademark or trademark of Intel Corporation
 or its subsidiaries in the United States and other countries.
index f60ed7e..a89a0d8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e97ebb6..7a28210 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3526052..a1207b8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index afd48f2..49099bf 100644 (file)
@@ -20,7 +20,7 @@ The subdirectories pertain to the Resource Management Layer (RML).
 <HR>
 <A HREF="../index.html">Up to parent directory</A>
 <p></p>
-Copyright &copy; 2005-2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2005-2019 Intel Corporation.  All Rights Reserved.
 <P></P>
 Intel is a registered trademark or trademark of Intel Corporation
 or its subsidiaries in the United States and other countries.
index 3a21b04..d2954d0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2460421..c5f9a82 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5b5064c..82fd34b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 58558ba..5da76d7 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index abc1f53..db0a49c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index df6b093..75edbe9 100644 (file)
@@ -7,7 +7,7 @@ This directory has source code internal to the server.
 <HR>
 <A HREF="../index.html">Up to parent directory</A>
 <p></p>
-Copyright &copy; 2005-2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2005-2019 Intel Corporation.  All Rights Reserved.
 <P></P>
 Intel is a registered trademark or trademark of Intel Corporation
 or its subsidiaries in the United States and other countries.
index b06cebb..27d32b1 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2018 Intel Corporation
+// Copyright (c) 2005-2019 Intel Corporation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -81,7 +81,7 @@ BEGIN
             VALUE "CompanyName", "Intel Corporation\0"
             VALUE "FileDescription", "Intel(R) Threading Building Blocks resource manager library\0"
             VALUE "FileVersion", TBB_VERSION "\0"
-            VALUE "LegalCopyright", "Copyright 2005-2018 Intel Corporation.  All Rights Reserved.\0"
+            VALUE "LegalCopyright", "Copyright 2005-2019 Intel Corporation.  All Rights Reserved.\0"
             VALUE "LegalTrademarks", "\0"
 #ifndef TBB_USE_DEBUG
             VALUE "OriginalFilename", "irml.dll\0"
index 370bead..b9d1f51 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 04f43bb..923cf65 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2508465..2d30c11 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2b59bb7..25e77a1 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2fcad92..163bb96 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index bf379d1..0c6fd39 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
index bf379d1..0c6fd39 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
index b682b6e..4310de4 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3499c9b..e80cbb4 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 37b75ff..f5e2dd0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 037ec6b..d8f22a4 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 50b9e23..c9e7248 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6e78d4a..6e63c33 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0e77b96..3d9e5a2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e92e886..2151d73 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7761802..40e4945 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7e90205..d99afdb 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6525308..b651975 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4549677..85dc06a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e6c2da4..7104424 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e8501b0..2cb9b3e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1efa52e..26aa2dc 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5401e23..de61ff3 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d9a2596..70653a9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7c21314..b7b8caf 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 841b8d8..8436c21 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3c7ab7e..791c105 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ed046f3..b09136c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 337f82b..958cc48 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9fabe6e..d6c31e3 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1f4949c..ad871a2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 059b547..75395fc 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
index e10248f..b6a0f72 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
index c0f9ebd..bd1643e 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
index bd60d98..2dc84af 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2018 Intel Corporation
+// Copyright (c) 2005-2019 Intel Corporation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
index 1f28281..b189ae9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2018 Intel Corporation
+// Copyright (c) 2005-2019 Intel Corporation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
index 5a90b07..cc63a87 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2018 Intel Corporation
+// Copyright (c) 2005-2019 Intel Corporation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
index 7101098..53d16f8 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2018 Intel Corporation
+// Copyright (c) 2005-2019 Intel Corporation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
index efcf0db..9f78d0d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2018 Intel Corporation
+// Copyright (c) 2005-2019 Intel Corporation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
index 174f183..1985cde 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 902443f..f9cea0f 100644 (file)
@@ -21,7 +21,7 @@ This directory contains the source code of the TBB core components.
 <HR>
 <A HREF="../index.html">Up to parent directory</A>
 <p></p>
-Copyright &copy; 2005-2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2005-2019 Intel Corporation.  All Rights Reserved.
 <P></P>
 Intel is a registered trademark or trademark of Intel Corporation
 or its subsidiaries in the United States and other countries.
index 871f9d1..4925b6e 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
index 0c83500..934be99 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
index be7be74..fb69b73 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
index bf16b1d..d7726e6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 31c5559..4286491 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 32d5d9d..3e322b5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8f44f31..9c6e83e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6fb1626..839f399 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4f1a07b..fa7b148 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1e6eaed..edc4afd 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e567e22..5235cca 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 369f178..0ac7e5a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a465b0c..c16fa46 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0261a6c..ea853a9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 07dc4b8..3765846 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2024cd4..9eeae6f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 75a216e..3b3b060 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c922609..ec1cff9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d6bdf10..bc3874f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 12a4490..b17f0c4 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1a5b39a..f0c442d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9751293..5f853ea 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a23d147..71a1677 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index bd79453..c08e025 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index fdbb218..4083c10 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2ed20cd..790003e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index fd13aca..120c841 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0977539..55438b0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 288bd1a..0f10afc 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3f5a35c..c96ba6d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2afd1a1..852ea39 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6e84472..2d6899f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 853bece..3fad8aa 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d02bf00..ce263d4 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 150af22..4278ded 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 37078d1..d87f57c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e8e7e46..7dc497e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f20ae30..23f564d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 30aac2c..f951163 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4ff34aa..ee039da 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9032adb..141b47e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -18,6 +18,9 @@
 
 */
 
+#ifndef _TBB_assert_impl_H
+#define _TBB_assert_impl_H
+
 // IMPORTANT: To use assertion handling in TBB, exactly one of the TBB source files
 // should #include tbb_assert_impl.h thus instantiating assertion handling routines.
 // The intent of putting it to a separate file is to allow some tests to use it
@@ -99,3 +102,5 @@ namespace tbb {
 #else
 }  // namespace tbb
 #endif
+
+#endif /*_TBB_assert_impl_H*/
index bde3fd6..de9cbb2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 060fdb7..032a918 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index b84357b..0ba4ac0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 23bc1ff..f02fb51 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c1584e3..2db3164 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ae2e498..b50aa21 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0dac864..c2f3968 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2018 Intel Corporation
+// Copyright (c) 2005-2019 Intel Corporation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -81,7 +81,7 @@ BEGIN
             VALUE "CompanyName", "Intel Corporation\0"
             VALUE "FileDescription", "Intel(R) Threading Building Blocks library\0"
             VALUE "FileVersion", TBB_VERSION "\0"
-            VALUE "LegalCopyright", "Copyright 2005-2018 Intel Corporation.  All Rights Reserved.\0"
+            VALUE "LegalCopyright", "Copyright 2005-2019 Intel Corporation.  All Rights Reserved.\0"
             VALUE "LegalTrademarks", "\0"
 #ifndef TBB_USE_DEBUG
             VALUE "OriginalFilename", "tbb.dll\0"
index a04c8c9..9bbc22a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index aba5506..4ee9fb6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0bcb76e..d5da163 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index dcaa55b..000250b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4bae634..685f6fe 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6725ddc..c4e9bf8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 433477e..89b0058 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9956232..eda49f2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index dab25fa..1bd1d2e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ec93aad..2ce265d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2c0f5da..5ee3c92 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a3d8d2e..3ec0e1b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d6567c4..cc6f3d4 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
index ee28097..70d1132 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
index 22c181c..ba32740 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5c8b67a..891d541 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 776dd5a..7226b21 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
index e7639c7..1c7ee5f 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
index e30e629..2facc9c 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
index ebf9d0c..be4a368 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 49866ac..c0aa06b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -24,6 +24,7 @@
 // customizing MALLOC_ASSERT macro
 #include "tbb/tbb_stddef.h"
 #define MALLOC_ASSERT(assertion, message) __TBB_ASSERT(assertion, message)
+#define MALLOC_ASSERT_EX(assertion, message) __TBB_ASSERT_EX(assertion, message)
 
 #ifndef MALLOC_DEBUG
 #define MALLOC_DEBUG TBB_USE_DEBUG
index 545555c..04222ff 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ead9cc0..1a9077f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ce6a118..def91fa 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 79110e5..199ad61 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 44d3bcc..6cda7ec 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ae8e66a..d75e0e6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d4c489e..70fd80b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -2431,8 +2431,8 @@ bool isLargeObject(void *object)
     if (!isAligned(object, largeObjectAlignment))
         return false;
     LargeObjectHdr *header = (LargeObjectHdr*)object - 1;
-    BackRefIdx idx = memOrigin==unknownMem? safer_dereference(&header->backRefIdx) :
-        header->backRefIdx;
+    BackRefIdx idx = (memOrigin == unknownMem) ?
+        safer_dereference(&header->backRefIdx) : header->backRefIdx;
 
     return idx.isLargeObject()
         // in valid LargeObjectHdr memoryBlock is not NULL
@@ -2607,19 +2607,15 @@ static void internalFree(void *object)
 
 static size_t internalMsize(void* ptr)
 {
-    if (ptr) {
-        MALLOC_ASSERT(isRecognized(ptr), "Invalid pointer in scalable_msize detected.");
-        if (isLargeObject<ourMem>(ptr)) {
-            // TODO: return the maximum memory size, that can be written to this object 
-            LargeMemoryBlock* lmb = ((LargeObjectHdr*)ptr - 1)->memoryBlock;
-            return lmb->objectSize;
-        } else
-            return ((Block*)alignDown(ptr, slabSize))->findObjectSize(ptr);
+    MALLOC_ASSERT(ptr, "Invalid pointer passed to internalMsize");
+    if (isLargeObject<ourMem>(ptr)) {
+        // TODO: return the maximum memory size, that can be written to this object
+        LargeMemoryBlock* lmb = ((LargeObjectHdr*)ptr - 1)->memoryBlock;
+        return lmb->objectSize;
+    } else {
+        Block *block = (Block*)alignDown(ptr, slabSize);
+        return block->findObjectSize(ptr);
     }
-    errno = EINVAL;
-    // Unlike _msize, return 0 in case of parameter error.
-    // Returning size_t(-1) looks more like the way to troubles.
-    return 0;
 }
 
 } // namespace internal
@@ -2754,6 +2750,21 @@ rml::MemoryPool *pool_identify(void *object)
     return (rml::MemoryPool*)pool;
 }
 
+size_t pool_msize(rml::MemoryPool *mPool, void* object)
+{
+    if (object) {
+        // No assert for object recognition, cause objects allocated from non-default
+        // memory pool do not participate in range checking and do not have valid backreferences for
+        // small objects. Instead, check that an object belong to the certain memory pool.
+        MALLOC_ASSERT_EX(mPool == pool_identify(object), "Object does not belong to the specified pool");
+        return internalMsize(object);
+    }
+    errno = EINVAL;
+    // Unlike _msize, return 0 in case of parameter error.
+    // Returning size_t(-1) looks more like the way to troubles.
+    return 0;
+}
+
 } // namespace rml
 
 using namespace rml::internal;
@@ -2877,12 +2888,14 @@ extern "C" void * scalable_malloc(size_t size)
     return ptr;
 }
 
-extern "C" void scalable_free (void *object) {
+extern "C" void scalable_free(void *object)
+{
     internalFree(object);
 }
 
 #if MALLOC_ZONE_OVERLOAD_ENABLED
-extern "C" void __TBB_malloc_free_definite_size(void *object, size_t size) {
+extern "C" void __TBB_malloc_free_definite_size(void *object, size_t size)
+{
     internalPoolFree(defaultMemPool, object, size);
 }
 #endif
@@ -3133,7 +3146,14 @@ extern "C" void scalable_aligned_free(void *ptr)
  */
 extern "C" size_t scalable_msize(void* ptr)
 {
-    return internalMsize(ptr);
+    if (ptr) {
+        MALLOC_ASSERT(isRecognized(ptr), "Invalid pointer in scalable_msize detected.");
+        return internalMsize(ptr);
+    }
+    errno = EINVAL;
+    // Unlike _msize, return 0 in case of parameter error.
+    // Returning size_t(-1) looks more like the way to troubles.
+    return 0;
 }
 
 /*
index d39803a..b53ea94 100644 (file)
@@ -7,7 +7,7 @@ This directory contains the Intel&reg; Threading Building Blocks (Intel&reg; TBB
 
 <HR>
 <p></p>
-Copyright &copy; 2005-2018 Intel Corporation.  All Rights Reserved.
+Copyright &copy; 2005-2019 Intel Corporation.  All Rights Reserved.
 <P></P>
 Intel is a registered trademark or trademark of Intel Corporation
 or its subsidiaries in the United States and other countries.
index 07d1294..48ee40f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 387f436..c971d34 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 303e19c..d0f06c6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -49,6 +49,7 @@ _ZN3rml12pool_reallocEPNS_10MemoryPoolEPvj;
 _ZN3rml20pool_aligned_reallocEPNS_10MemoryPoolEPvjj;
 _ZN3rml19pool_aligned_mallocEPNS_10MemoryPoolEjj;
 _ZN3rml13pool_identifyEPv;
+_ZN3rml10pool_msizeEPNS_10MemoryPoolEPv;
 
 local:
 
index 0bf8624..684e7c0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e954bfe..18ebd26 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -49,6 +49,7 @@ _ZN3rml12pool_reallocEPNS_10MemoryPoolEPvm;
 _ZN3rml20pool_aligned_reallocEPNS_10MemoryPoolEPvmm;
 _ZN3rml19pool_aligned_mallocEPNS_10MemoryPoolEmm;
 _ZN3rml13pool_identifyEPv;
+_ZN3rml10pool_msizeEPNS_10MemoryPoolEPv;
 
 local:
 
index 0bf8624..684e7c0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9cbfce7..e850a9b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -52,6 +52,7 @@ _ZN3rml12pool_reallocEPNS_10MemoryPoolEPvm;
 _ZN3rml20pool_aligned_reallocEPNS_10MemoryPoolEPvmm;
 _ZN3rml19pool_aligned_mallocEPNS_10MemoryPoolEmm;
 _ZN3rml13pool_identifyEPv;
+_ZN3rml10pool_msizeEPNS_10MemoryPoolEPv;
 
 local:
 
index 24ab729..7de9b25 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -46,3 +46,5 @@ __ZN3rml12pool_reallocEPNS_10MemoryPoolEPvm
 __ZN3rml20pool_aligned_reallocEPNS_10MemoryPoolEPvmm
 __ZN3rml19pool_aligned_mallocEPNS_10MemoryPoolEmm
 __ZN3rml13pool_identifyEPv
+__ZN3rml10pool_msizeEPNS_10MemoryPoolEPv
+
index 24ab729..7de9b25 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -46,3 +46,5 @@ __ZN3rml12pool_reallocEPNS_10MemoryPoolEPvm
 __ZN3rml20pool_aligned_reallocEPNS_10MemoryPoolEPvmm
 __ZN3rml19pool_aligned_mallocEPNS_10MemoryPoolEmm
 __ZN3rml13pool_identifyEPv
+__ZN3rml10pool_msizeEPNS_10MemoryPoolEPv
+
index 2cc0548..6915525 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -65,7 +65,7 @@
 /*** internal global operator new implementation (Linux, Windows) ***/
 #include <new>
 
-// Synchronization primitives to protect original library pointers and new_handler 
+// Synchronization primitives to protect original library pointers and new_handler
 #include "Synchronize.h"
 
 #if __TBB_MSVC_PART_WORD_INTERLOCKED_INTRINSICS_PRESENT
@@ -670,7 +670,7 @@ bool BytecodesAreKnown(const unicode_char_t *dllName)
     if (!module)
         return false;
     for (int i=0; funcName[i]; i++)
-        if (! IsPrologueKnown(module, funcName[i], known_bytecodes)) {
+        if (! IsPrologueKnown(dllName, funcName[i], known_bytecodes, module)) {
             fprintf(stderr, "TBBmalloc: skip allocation functions replacement in " WCHAR_SPEC
                     ": unknown prologue for function " WCHAR_SPEC "\n", dllName, funcName[i]);
             return false;
@@ -739,13 +739,14 @@ void doMallocReplacement()
             ReplaceFunctionWithStore( modules_to_replace[j].name, c_routines_to_replace[i]._func, c_routines_to_replace[i]._fptr, NULL, NULL,  c_routines_to_replace[i]._on_error );
         }
         if ( strcmp(modules_to_replace[j].name, "ucrtbase.dll") == 0 ) {
+            HMODULE ucrtbase_handle = GetModuleHandle("ucrtbase.dll");
             // If _o_free function is present and patchable, redirect it to tbbmalloc as well
             // This prevents issues with other _o_* functions which might allocate memory with malloc
-            if ( IsPrologueKnown(GetModuleHandle("ucrtbase.dll"), "_o_free", known_bytecodes) ) {
+            if ( IsPrologueKnown("ucrtbase.dll", "_o_free", known_bytecodes, ucrtbase_handle)) {
                 ReplaceFunctionWithStore( "ucrtbase.dll", "_o_free", (FUNCPTR)__TBB_malloc__o_free, known_bytecodes, (FUNCPTR*)&orig__o_free,  FRR_FAIL );
             }
             // Similarly for _free_base
-            if (IsPrologueKnown(GetModuleHandle("ucrtbase.dll"), "_free_base", known_bytecodes)) {
+            if (IsPrologueKnown("ucrtbase.dll", "_free_base", known_bytecodes, ucrtbase_handle)) {
                 ReplaceFunctionWithStore("ucrtbase.dll", "_free_base", (FUNCPTR)__TBB_malloc__free_base, known_bytecodes, (FUNCPTR*)&orig__free_base, FRR_FAIL);
             }
             // ucrtbase.dll does not export operator new/delete, so skip the rest of the loop.
index b92a396..c0ffc08 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 089f7be..62ae3b6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2bbd213..269ef7d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 93a519e..f2ebb38 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
 
 #if !__TBB_WIN8UI_SUPPORT && defined(_WIN32)
 
+#ifndef _CRT_SECURE_NO_DEPRECATE
 #define _CRT_SECURE_NO_DEPRECATE 1
+#endif
 #define __TBB_NO_IMPLICIT_LINKAGE 1
 
+// no standard-conforming implementation of snprintf prior to VS 2015
+#if !defined(_MSC_VER) || _MSC_VER>=1900
+#define LOG_PRINT(s, n, format, ...) snprintf(s, n, format, __VA_ARGS__)
+#else
+#define LOG_PRINT(s, n, format, ...) _snprintf_s(s, n, _TRUNCATE, format, __VA_ARGS__)
+#endif
+
 #include <windows.h>
 #include <new>
 #include <stdio.h>
 #include "tbb/tbb_stddef.h"
 #include "../tbb/tbb_assert_impl.h"
 
+// The information about a standard memory allocation function for the replacement log
+struct FunctionInfo {
+    const char* funcName;
+    const char* dllName;
+};
+
+// Namespace that processes and manages the output of records to the Log journal
+// that will be provided to user by TBB_malloc_replacement_log()
+namespace Log {
+    // Value of RECORDS_COUNT is set due to the fact that we maximally
+    // scan 8 modules, and in every module we can swap 6 opcodes. (rounded to 8)
+    static const unsigned RECORDS_COUNT = 8 * 8;
+    static const unsigned RECORD_LENGTH = MAX_PATH;
+
+    // Need to add 1 to count of records, because last record must be always NULL
+    static char *records[RECORDS_COUNT + 1];
+    static bool replacement_status = true;
+
+    // Internal counter, thats contain number of next string for record
+    static unsigned record_number = 0;
+
+    // Function that writes info about (not)found opcodes to the Log journal
+    // functionInfo - information about a standard memory allocation function for the replacement log
+    // opcodeString - string, that contain byte code of this function
+    // status - information about function replacement status
+    static void record(FunctionInfo functionInfo, const char * opcodeString, bool status) {
+        __TBB_ASSERT(functionInfo.dllName, "Empty DLL name value");
+        __TBB_ASSERT(functionInfo.funcName, "Empty function name value");
+        __TBB_ASSERT(opcodeString, "Empty opcode");
+        __TBB_ASSERT(record_number <= RECORDS_COUNT, "Incorrect record number");
+
+        //If some replacement failed -> set status to false
+        replacement_status &= status;
+
+        // If we reach the end of the log, write this message to the last line
+        if (record_number == RECORDS_COUNT) {
+            // %s - workaround to fix empty variable argument parsing behavior in GCC
+            LOG_PRINT(records[RECORDS_COUNT - 1], RECORD_LENGTH, "%s", "Log was truncated.");
+            return;
+        }
+
+        char* entry = (char*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, RECORD_LENGTH);
+        __TBB_ASSERT(entry, "Invalid memory was returned");
+
+        LOG_PRINT(entry, RECORD_LENGTH, "%s: %s (%s), byte pattern: <%s>",
+            status ? "Success" : "Fail", functionInfo.funcName, functionInfo.dllName, opcodeString);
+
+        records[record_number++] = entry;
+    }
+};
+
 inline UINT_PTR Ptr2Addrint(LPVOID ptr)
 {
     Int2Ptr i2p;
@@ -195,14 +255,14 @@ size_t compareStrings( const char *str1, const char *str2 )
 // Dictionary contains opcodes for several full asm instructions
 // + one opcode byte for the next asm instruction for safe address processing
 // RETURN: 1 + the index of the matched pattern, or 0 if no match found.
-static UINT CheckOpcodes( const char ** opcodes, void *inpAddr, bool abortOnError )
+static UINT CheckOpcodes( const char ** opcodes, void *inpAddr, bool abortOnError, const FunctionInfo* functionInfo = NULL)
 {
     static size_t opcodesStringsCount = 0;
     static size_t maxOpcodesLength = 0;
     static size_t opcodes_pointer = (size_t)opcodes;
     char opcodeString[2*MAX_PATTERN_SIZE+1];
     size_t i;
-    size_t result;
+    size_t result = 0;
 
     // Get the values for static variables
     // max length and number of patterns
@@ -225,8 +285,15 @@ static UINT CheckOpcodes( const char ** opcodes, void *inpAddr, bool abortOnErro
     // Compare translated opcodes with patterns
     for( UINT idx=0; idx<opcodesStringsCount; ++idx ){
         result = compareStrings( opcodes[idx],opcodeString );
-        if( result )
-            return idx+1; // avoid 0 which indicates a failure
+        if( result ) {
+            if (functionInfo) {
+                Log::record(*functionInfo, opcodeString, /*status*/ true);
+            }
+            return idx + 1; // avoid 0 which indicates a failure
+        }
+    }
+    if (functionInfo) {
+        Log::record(*functionInfo, opcodeString, /*status*/ false);
     }
     if (abortOnError) {
         // Impossibility to find opcodes in the dictionary is a serious issue,
@@ -493,12 +560,25 @@ FRR_TYPE ReplaceFunctionW(const wchar_t *dllName, const char *funcName, FUNCPTR
     return FRR_OK;
 }
 
-bool IsPrologueKnown(HMODULE module, const char *funcName, const char **opcodes)
+bool IsPrologueKnown(const char* dllName, const char *funcName, const char **opcodes, HMODULE module)
 {
     FARPROC inpFunc = GetProcAddress(module, funcName);
     if (!inpFunc)
         return false;
-    return CheckOpcodes( opcodes, (void*)inpFunc, /*abortOnError=*/false ) != 0;
+
+    FunctionInfo functionInfo = { funcName, dllName };
+    return CheckOpcodes( opcodes, (void*)inpFunc, /*abortOnError=*/false, &functionInfo) != 0;
+}
+
+// Public Windows API
+extern "C" __declspec(dllexport) int TBB_malloc_replacement_log(char *** function_replacement_log_ptr)
+{
+    if (function_replacement_log_ptr != NULL) {
+        *function_replacement_log_ptr = Log::records;
+    }
+
+    // If we have no logs -> return false status
+    return Log::replacement_status && Log::records[0] != NULL ? 0 : -1;
 }
 
 #endif /* !__TBB_WIN8UI_SUPPORT && defined(_WIN32) */
index 35dc538..2a7486e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -45,7 +45,7 @@ typedef void (*FUNCPTR)();
 FRR_TYPE ReplaceFunctionA(const char *dllName, const char *funcName, FUNCPTR newFunc, const char ** opcodes, FUNCPTR* origFunc=NULL);
 FRR_TYPE ReplaceFunctionW(const wchar_t *dllName, const char *funcName, FUNCPTR newFunc, const char ** opcodes, FUNCPTR* origFunc=NULL);
 
-bool IsPrologueKnown(HMODULE module, const char *funcName, const char **opcodes);
+bool IsPrologueKnown(const char* dllName, const char *funcName, const char **opcodes, HMODULE module);
 
 // Utilities to convert between ADDRESS and LPVOID
 union Int2Ptr {
index bab6e79..bf978a7 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 546c741..9cbc131 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2018 Intel Corporation
+// Copyright (c) 2005-2019 Intel Corporation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -84,7 +84,7 @@ BEGIN
             VALUE "CompanyName", "Intel Corporation\0"
             VALUE "FileDescription", "Scalable Allocator library\0"
             VALUE "FileVersion", TBBMALLOC_VERSION "\0"
-            VALUE "LegalCopyright", "Copyright 2005-2018 Intel Corporation.  All Rights Reserved.\0"
+            VALUE "LegalCopyright", "Copyright 2005-2019 Intel Corporation.  All Rights Reserved.\0"
             VALUE "LegalTrademarks", "\0"
 #ifndef TBB_USE_DEBUG
             VALUE "OriginalFilename", "tbbmalloc.dll\0"
index b173ca1..943973d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f9efc38..3df23e2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e5012d6..aab8a79 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -47,6 +47,7 @@ _ZN3rml12pool_reallocEPNS_10MemoryPoolEPvj;
 _ZN3rml20pool_aligned_reallocEPNS_10MemoryPoolEPvjj;
 _ZN3rml19pool_aligned_mallocEPNS_10MemoryPoolEjj;
 _ZN3rml13pool_identifyEPv;
+_ZN3rml10pool_msizeEPNS_10MemoryPoolEPv;
 
 local:*;
 };
index 0c445de..879baa6 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
@@ -45,3 +45,5 @@ __TBB_malloc_safer_aligned_realloc
 ?pool_aligned_realloc@rml@@YAPAXPAVMemoryPool@1@PAXII@Z
 ?pool_aligned_malloc@rml@@YAPAXPAVMemoryPool@1@II@Z
 ?pool_identify@rml@@YAPAVMemoryPool@1@PAX@Z
+?pool_msize@rml@@YAIPAVMemoryPool@1@PAX@Z
+
index 4b3c24b..94bea4e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -47,6 +47,7 @@ _ZN3rml12pool_reallocEPNS_10MemoryPoolEPvy;
 _ZN3rml20pool_aligned_reallocEPNS_10MemoryPoolEPvyy;
 _ZN3rml19pool_aligned_mallocEPNS_10MemoryPoolEyy;
 _ZN3rml13pool_identifyEPv;
+_ZN3rml10pool_msizeEPNS_10MemoryPoolEPv;
 
 local:*;
 };
index 095f2ce..b0a20f7 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
@@ -46,3 +46,5 @@ __TBB_malloc_safer_aligned_realloc
 ?pool_aligned_realloc@rml@@YAPEAXPEAVMemoryPool@1@PEAX_K2@Z
 ?pool_aligned_malloc@rml@@YAPEAXPEAVMemoryPool@1@_K1@Z
 ?pool_identify@rml@@YAPEAVMemoryPool@1@PEAX@Z
+?pool_msize@rml@@YA_KPEAVMemoryPool@1@PEAX@Z
+
index d0dcb8f..de0725e 100644 (file)
@@ -1,4 +1,4 @@
-; Copyright (c) 2005-2018 Intel Corporation
+; Copyright (c) 2005-2019 Intel Corporation
 ;
 ; Licensed under the Apache License, Version 2.0 (the "License");
 ; you may not use this file except in compliance with the License.
index 5b40b86..c14d54b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4e2f178..2bd1060 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d57bb96..3e10183 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -579,6 +579,77 @@ public:
 
 };
 
+template <typename T>
+class pmr_stateful_allocator
+{
+private:
+    pmr_stateful_allocator& operator=(const pmr_stateful_allocator&); /* = deleted */
+public:
+    typedef T value_type;
+    typedef Harness::false_type propagate_on_container_move_assignment;
+    typedef Harness::false_type propagate_on_container_copy_assignment;
+    typedef Harness::false_type propagate_on_container_swap;
+
+// These types are required in C++03
+#if !__TBB_ALLOCATOR_TRAITS_PRESENT
+    typedef value_type* pointer;
+    typedef const value_type* const_pointer;
+    typedef value_type& reference;
+    typedef const value_type& const_reference;
+    typedef size_t size_type;
+    typedef ptrdiff_t difference_type;
+    template<class U> struct rebind {
+        typedef pmr_stateful_allocator<U> other;
+    };
+#endif
+
+    pmr_stateful_allocator() throw() : unique_pointer(this) {}
+
+    pmr_stateful_allocator(const pmr_stateful_allocator &a) : unique_pointer(a.unique_pointer) {}
+
+    template<typename U>
+    pmr_stateful_allocator(const pmr_stateful_allocator<U> &a) throw() : unique_pointer(a.unique_pointer) {}
+
+    value_type* allocate( size_t n, const void* /*hint*/ = 0 ) {
+        return static_cast<value_type*>( malloc( n * sizeof(value_type) ) );
+    }
+
+    void deallocate( value_type* p, size_t ) {
+        free( p );
+    }
+
+#if __TBB_ALLOCATOR_CONSTRUCT_VARIADIC
+    //! Copy-construct value at location pointed to by p.
+    template<typename U, typename... Args>
+    void construct(U *p, Args&&... args)
+    {
+        ::new((void *)p) U(std::forward<Args>(args)...);
+    }
+#else // __TBB_ALLOCATOR_CONSTRUCT_VARIADIC
+#if __TBB_CPP11_RVALUE_REF_PRESENT
+    void construct(value_type* p, value_type&& value) { ::new((void*)(p)) value_type(std::move(value)); }
+#endif
+    void construct(value_type* p, const value_type& value) { ::new((void*)(p)) value_type(value); }
+#endif // __TBB_ALLOCATOR_CONSTRUCT_VARIADIC
+
+    //! Destroy value at location pointed to by p.
+    void destroy(value_type* p) {
+        p->~value_type();
+        // suppress "unreferenced parameter" warnings by MSVC up to and including 2015
+        tbb::internal::suppress_unused_warning(p);
+    }
+
+    friend bool operator==(pmr_stateful_allocator const& lhs, pmr_stateful_allocator const& rhs){
+        return lhs.unique_pointer == rhs.unique_pointer;
+    }
+
+    friend bool operator!=(pmr_stateful_allocator const& rhs, pmr_stateful_allocator const& lhs){
+        return !(lhs == rhs);
+    }
+
+    void* unique_pointer;
+};
+
 #if defined(_MSC_VER) && !defined(__INTEL_COMPILER)
     // Workaround for overzealous compiler warnings
     #pragma warning (pop)
index 2397863..f59684d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3fc8e5a..ed7bfbe 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a4eb2e3..9b98219 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ed290c1..9679fe8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3053025..7873d24 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1135066..8f221e1 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 22ac331..84386cd 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ea35873..1d13a9a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f7727d2..a9a6422 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 386c5da..1fe30d8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ae48584..192229d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5ad4095..f79cf42 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 56bd126..cfd5cfd 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9c6cd66..4ba8d99 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3155e54..dc8bba2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 606c3a0..aadb2f6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 57c8249..c5290f0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index fe81b19..02f0c45 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7e3c87a..b3830b6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6b857cd..a1ca110 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7ed4dfb..d1a3f14 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ddb98b4..86f11fd 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 78a0b72..bd65834 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2cfce82..2b3f30d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d4fe70f..a3aa159 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c483a6a..34706b0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 688acf1..194003f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5113f8c..91ee2e5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6e07435..cad44c8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -27,6 +27,7 @@
 #include "harness_assert.h"
 #include "tbb/memory_pool.h"
 #include "tbb/scalable_allocator.h"
+#include <iostream>
 
 // The actual body of the test is there:
 #include "test_allocator_STL.h"
@@ -38,5 +39,16 @@ int TestMain () {
     static char buf[1024*1024*4];
     tbb::fixed_pool fpool(buf, sizeof(buf));
     TestAllocatorWithSTL(tbb::memory_pool_allocator<void>(fpool) );
+
+#if __TBB_CPP17_MEMORY_RESOURCE_PRESENT
+    ASSERT(!tbb::scalable_memory_resource()->is_equal(*std::pmr::get_default_resource()),
+            "Scalable resource shouldn't be equal to standard resource." );
+    ASSERT(tbb::scalable_memory_resource()->is_equal(*tbb::scalable_memory_resource()),
+            "Memory that was allocated by one scalable resource should be deallocated by any other instance.");
+
+    typedef std::pmr::polymorphic_allocator<void> pmr_alloc_t;
+    TestAllocatorWithSTL(pmr_alloc_t(tbb::scalable_memory_resource()));
+#endif
+
     return Harness::Done;
 }
index d92cc8a..56900ec 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 93f0ae5..a74494a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a9662c9..83e427e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 89e471a..5102ec8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -94,12 +94,23 @@ struct MoveOperationTracker {
 
 template<typename Allocator>
 void TestAllocatorWithSTL(const Allocator &a = Allocator() ) {
+
+// Allocator type convertion section
+#if __TBB_ALLOCATOR_TRAITS_PRESENT
+    typedef typename std::allocator_traits<Allocator>::template rebind_alloc<int> Ai;
+    typedef typename std::allocator_traits<Allocator>::template rebind_alloc<std::pair<const int, int> > Acii;
+#if _MSC_VER
+    typedef typename std::allocator_traits<Allocator>::template rebind_alloc<const int> Aci;
+    typedef typename std::allocator_traits<Allocator>::template rebind_alloc<std::pair<int, int> > Aii;
+#endif // _MSC_VER
+#else
     typedef typename Allocator::template rebind<int>::other Ai;
     typedef typename Allocator::template rebind<std::pair<const int, int> >::other Acii;
 #if _MSC_VER
     typedef typename Allocator::template rebind<const int>::other Aci;
     typedef typename Allocator::template rebind<std::pair<int, int> >::other Aii;
-#endif
+#endif // _MSC_VER
+#endif // __TBB_ALLOCATOR_TRAITS_PRESENT
 
     // Sequenced containers
     TestSequence<std::deque <int,Ai> >(a);
@@ -107,11 +118,15 @@ void TestAllocatorWithSTL(const Allocator &a = Allocator() ) {
     TestSequence<std::vector<int,Ai> >(a);
 
 #if __TBB_CPP11_RVALUE_REF_PRESENT
+#if __TBB_ALLOCATOR_TRAITS_PRESENT
+    typedef typename std::allocator_traits<Allocator>::template rebind_alloc<MoveOperationTracker> Amot;
+#else
     typedef typename Allocator::template rebind<MoveOperationTracker>::other Amot;
+#endif // __TBB_ALLOCATOR_TRAITS_PRESENT
     TestSequence<std::deque <MoveOperationTracker, Amot> >(a);
     TestSequence<std::list  <MoveOperationTracker, Amot> >(a);
     TestSequence<std::vector<MoveOperationTracker, Amot> >(a);
-#endif
+#endif // __TBB_CPP11_RVALUE_REF_PRESENT
 
     // Associative containers
     TestSet<std::set     <int, std::less<int>, Ai> >(a);
index 3054a9f..e21e65e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index b17c53c..fe1b40c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 27ccd2c..12d8f01 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index bea5425..144a29d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6f67a3f..5411fd1 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index b3a878f..e087e15 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 111d7e8..c876126 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 343c768..21d8dfc 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2017-2018 Intel Corporation
+    Copyright (c) 2017-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6bff5a9..5690540 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 20f9821..932ee26 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4ca8e36..87be2ea 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1eb66fd..309ccaa 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -30,6 +30,17 @@ int TestMain () {
     TestAllocatorWithSTL<tbb::cache_aligned_allocator<void> >();
     TestAllocatorWithSTL<tbb::tbb_allocator<void> >();
     TestAllocatorWithSTL<tbb::zero_allocator<void> >();
+
+#if __TBB_CPP17_MEMORY_RESOURCE_PRESENT
+    tbb::cache_aligned_resource aligned_resource;
+    tbb::cache_aligned_resource equal_aligned_resource(std::pmr::get_default_resource());
+    ASSERT(aligned_resource.is_equal(equal_aligned_resource),
+            "Underlying upstream resources should be equal.");
+    ASSERT(!aligned_resource.is_equal(*std::pmr::null_memory_resource()),
+            "Cache aligned resource upstream shouldn't be equal to the standard resource.");
+    TestAllocatorWithSTL(std::pmr::polymorphic_allocator<void>(&aligned_resource));
+#endif
+
     return Harness::Done;
 }
 
index e35c3a1..7317fe0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e120730..886a89e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 99b3590..03c24d6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 43e26c6..8de142b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4ce7c7c..8f93a09 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 167c826..8196cc6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -1386,6 +1386,76 @@ void TestMoveSupport(){
 }
 #endif //__TBB_CPP11_RVALUE_REF_PRESENT
 
+#if __TBB_CPP17_DEDUCTION_GUIDES_PRESENT
+
+template <template <typename...> typename TMap>
+void TestDeductionGuides() {
+    using Key = int;
+    using Value = std::string;
+
+    using ComplexType = std::pair<Key, Value>;
+    using ComplexTypeConst = std::pair<const Key, Value>;
+
+    using DefaultCompare = tbb::tbb_hash_compare<Key>;
+    using Compare = debug_hash_compare<Key>;
+    using DefaultAllocator = tbb::tbb_allocator<ComplexTypeConst>;
+    using Allocator = std::allocator<ComplexType>;
+
+    std::vector<ComplexType> v;
+    auto l = { ComplexTypeConst(1, "one"), ComplexTypeConst(2, "two") };
+    Compare compare;
+    Allocator allocator;
+
+    // check TMap(InputIterator, InputIterator)
+    TMap m1(v.begin(), v.end());
+    static_assert(std::is_same<decltype(m1), TMap<Key, Value, DefaultCompare, DefaultAllocator>>::value);
+
+    // check TMap(InputIterator, InputIterator, HashCompare)
+    TMap m2(v.begin(), v.end(), compare);
+    static_assert(std::is_same<decltype(m2), TMap<Key, Value, Compare>>::value);
+
+    // check TMap(InputIterator, InputIterator, HashCompare, Allocator)
+    TMap m3(v.begin(), v.end(), compare, allocator);
+    static_assert(std::is_same<decltype(m3), TMap<Key, Value, Compare, Allocator>>::value);
+
+    // check TMap(InputIterator, InputIterator, Allocator)
+    TMap m4(v.begin(), v.end(), allocator);
+    static_assert(std::is_same<decltype(m4), TMap<Key, Value, DefaultCompare, Allocator>>::value);
+
+    // check TMap(std::initializer_list)
+    TMap m5(l);
+    static_assert(std::is_same<decltype(m5), TMap<Key, Value, DefaultCompare, DefaultAllocator>>::value);
+
+    // check TMap(std::initializer_list, HashCompare)
+    TMap m6(l, compare);
+    static_assert(std::is_same<decltype(m6), TMap<Key, Value, Compare, DefaultAllocator>>::value);
+
+    // check TMap(std::initializer_list, HashCompare, Allocator)
+    TMap m7(l, compare, allocator);
+    static_assert(std::is_same<decltype(m7), TMap<Key, Value, Compare, Allocator>>::value);
+
+    // check TMap(std::initializer_list, Allocator)
+    TMap m8(l, allocator);
+    static_assert(std::is_same<decltype(m8), TMap<Key, Value, DefaultCompare, Allocator>>::value);
+
+    // check TMap(TMap &)
+    TMap m9(m1);
+    static_assert(std::is_same<decltype(m9), decltype(m1)>::value);
+
+    // check TMap(TMap &, Allocator)
+    TMap m10(m4, allocator);
+    static_assert(std::is_same<decltype(m10), decltype(m4)>::value);
+
+    // check TMap(TMap &&)
+    TMap m11(std::move(m1));
+    static_assert(std::is_same<decltype(m11), decltype(m1)>::value);
+
+    // check TMap(TMap &&, Allocator)
+    TMap m12(std::move(m4), allocator);
+    static_assert(std::is_same<decltype(m12), decltype(m4)>::value);
+}
+#endif // __TBB_CPP17_DEDUCTION_GUIDES_PRESENT
+
 template<typename Key>
 struct non_default_constructible_hash_compare : tbb::tbb_hash_compare<Key> {
     non_default_constructible_hash_compare() {
@@ -1478,5 +1548,9 @@ int TestMain () {
     TestCPP11Types();
     TestHashCompareConstructors();
 
+#if __TBB_CPP17_DEDUCTION_GUIDES_PRESENT
+    TestDeductionGuides<tbb::concurrent_hash_map>();
+#endif
+
     return Harness::Done;
 }
index ad0873d..13826ad 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index db76a0e..f49fef3 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0836fee..af271cb 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 72bf7e7..4d3333b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7d153da..e05de61 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2d39dd9..a14a04c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8d01780..df2d9c5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -296,6 +296,95 @@ void TestTypes() {
 #endif /* __TBB_CPP11_SMART_POINTERS_PRESENT */
 }
 
+#if __TBB_CPP17_DEDUCTION_GUIDES_PRESENT
+template <template <typename...> typename TMap>
+void TestDeductionGuides() {
+    using ComplexType = std::pair<int, std::string>;
+    using ComplexTypeConst = std::pair<const int, std::string>;
+    std::vector<ComplexType> v;
+    auto l = { ComplexTypeConst(1, "one"), ComplexTypeConst(2, "two")};
+
+    // check TMap(InputIterator, InputIterator)
+    TMap m0(v.begin(), v.end());
+    static_assert(std::is_same<decltype(m0), TMap<int, std::string>>::value);
+
+    // check TMap(InputIterator, InputIterator, size_t)
+    TMap m1(v.begin(), v.end(), 1);
+    static_assert(std::is_same<decltype(m1), TMap<int, std::string>>::value);
+
+
+    // check TMap(InputIterator, InputIterator, size_t, Hasher)
+    TMap m2(v.begin(), v.end(), 4, std::hash<int>());
+    static_assert(std::is_same<decltype(m2), TMap<int, std::string, std::hash<int>>>::value);
+
+    // check TMap(InputIterator, InputIterator, size_t, Hasher, Equality)
+    TMap m3(v.begin(), v.end(), 4, std::hash<int>(), std::less<int>());
+    static_assert(std::is_same<decltype(m3), TMap<int, std::string, std::hash<int>, std::less<int>>>::value);
+
+    // check TMap(InputIterator, InputIterator, size_t, Hasher, Equality, Allocator)
+    TMap m4(v.begin(), v.end(), 4, std::hash<int>(), std::less<int>(), std::allocator<int>());
+    static_assert(std::is_same<decltype(m4), TMap<int, std::string, std::hash<int>,
+        std::less<int>, std::allocator<int>>>::value);
+
+    // check TMap(InputIterator, InputIterator, size_t, Allocator)
+    TMap m5(v.begin(), v.end(), 5, std::allocator<int>());
+    static_assert(std::is_same<decltype(m5), TMap<int, std::string, tbb::tbb_hash<int>,
+        std::equal_to<int>, std::allocator<int>>>::value);
+
+    // check TMap(InputIterator, InputIterator, size_t, Hasher, Allocator)
+    TMap m6(v.begin(), v.end(), 4, std::hash<int>(), std::allocator<int>());
+    static_assert(std::is_same<decltype(m6), TMap<int, std::string, std::hash<int>,
+        std::equal_to<int>, std::allocator<int>>>::value);
+
+    // check TMap(std::initializer_list)
+    TMap m7(l);
+    static_assert(std::is_same<decltype(m7), TMap<int, std::string>>::value);
+
+    // check TMap(std::initializer_list, size_t)
+    TMap m8(l, 1);
+    static_assert(std::is_same<decltype(m8), TMap<int, std::string>>::value);
+
+    // check TMap(std::initializer_list, size_t, Hasher)
+    TMap m9(l, 4, std::hash<int>());
+    static_assert(std::is_same<decltype(m9), TMap<int, std::string, std::hash<int>>>::value);
+
+    // check TMap(std::initializer_list, size_t, Hasher, Equality)
+    TMap m10(l, 4, std::hash<int>(), std::less<int>());
+    static_assert(std::is_same<decltype(m10), TMap<int, std::string, std::hash<int>, std::less<int>>>::value);
+
+    // check TMap(std::initializer_list, size_t, Hasher, Equality, Allocator)
+    TMap m11(l, 4, std::hash<int>(), std::less<int>(), std::allocator<int>());
+    static_assert(std::is_same<decltype(m11), TMap<int, std::string, std::hash<int>,
+        std::less<int>, std::allocator<int>>>::value);
+
+    // check TMap(std::initializer_list, size_t, Allocator)
+    TMap m12(l, 4, std::allocator<int>());
+    static_assert(std::is_same<decltype(m12), TMap<int, std::string, tbb::tbb_hash<int>,
+        std::equal_to<int>, std::allocator<int>>>::value);
+
+    // check TMap(std::initializer_list, size_t, Hasher, Allocator)
+    TMap m13(l, 4, std::hash<int>(), std::allocator<int>());
+    static_assert(std::is_same<decltype(m13), TMap<int, std::string, std::hash<int>,
+        std::equal_to<int>, std::allocator<int>>>::value);
+
+    // check TMap(TMap &)
+    TMap m14(m1);
+    static_assert(std::is_same<decltype(m14), decltype(m1)>::value);
+
+    // check TMap(TMap &, Allocator)
+    TMap m15(m5, std::allocator<int>());
+    static_assert(std::is_same<decltype(m15), decltype(m5)>::value);
+
+    // check TMap(TMap &&)
+    TMap m16(std::move(m1));
+    static_assert(std::is_same<decltype(m16), decltype(m1)>::value);
+
+    // check TMap(TMap &&, Allocator)
+    TMap m17(std::move(m5), std::allocator<int>());
+    static_assert(std::is_same<decltype(m17), decltype(m5)>::value);
+}
+#endif
+
 int TestMain() {
     test_machine();
 
@@ -331,6 +420,11 @@ int TestMain() {
     test_rvalue_ref_support<cu_multimap_type>( "concurrent unordered multimap" );
 #endif /* __TBB_CPP11_RVALUE_REF_PRESENT */
 
+#if __TBB_CPP17_DEDUCTION_GUIDES_PRESENT
+    TestDeductionGuides<tbb::concurrent_unordered_map>();
+    TestDeductionGuides<tbb::concurrent_unordered_multimap>();
+#endif
+
     TestTypes();
 
     return Harness::Done;
index 9269535..480bbbb 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -130,6 +130,89 @@ void TestTypes( ) {
 }
 #endif // __TBB_TEST_SECONDARY
 
+#if __TBB_CPP17_DEDUCTION_GUIDES_PRESENT
+template <template <typename ...> typename TSet>
+void TestDeductionGuides() {
+    using ComplexType = const std::string *;
+    std::vector<ComplexType> v;
+    std::string s = "s";
+    auto l = { ComplexType(&s), ComplexType(&s)};
+
+    // check TSet(InputIterator,InputIterator)
+    TSet s1(v.begin(), v.end());
+    static_assert(std::is_same<decltype(s1), TSet<ComplexType>>::value);
+
+    // check TSet(InputIterator,InputIterator, size_t, Hasher)
+    TSet s2(v.begin(), v.end(), 5, std::hash<ComplexType>());
+    static_assert(std::is_same<decltype(s2), TSet<ComplexType, std::hash<ComplexType>>>::value);
+
+    // check TSet(InputIterator,InputIterator, size_t, Hasher, Equality)
+    TSet s3(v.begin(), v.end(), 5, std::hash<ComplexType>(), std::less<ComplexType>());
+    static_assert(std::is_same<decltype(s3), TSet<ComplexType, std::hash<ComplexType>,
+        std::less<ComplexType>>>::value);
+
+    // check TSet(InputIterator,InputIterator, size_t, Hasher, Equality, Allocator)
+    TSet s4(v.begin(), v.end(), 5, std::hash<ComplexType>(), std::less<ComplexType>(),
+        std::allocator<ComplexType>());
+    static_assert(std::is_same<decltype(s4), TSet<ComplexType, std::hash<ComplexType>,
+        std::less<ComplexType>, std::allocator<ComplexType>>>::value);
+
+    // check TSet(InputIterator,InputIterator, size_t, Allocator)
+    TSet s5(v.begin(), v.end(), 5, std::allocator<ComplexType>());
+    static_assert(std::is_same<decltype(s5), TSet<ComplexType, tbb::tbb_hash<ComplexType>,
+        std::equal_to<ComplexType>, std::allocator<ComplexType>>>::value);
+
+    // check TSet(InputIterator,InputIterator, size_t, Hasher, Allocator)
+    TSet s6(v.begin(), v.end(), 5, std::hash<ComplexType>(), std::allocator<ComplexType>());
+    static_assert(std::is_same<decltype(s6), TSet<ComplexType, std::hash<ComplexType>,
+        std::equal_to<ComplexType>, std::allocator<ComplexType>>>::value);
+
+    // check TSet(std::initializer_list)
+    TSet s7(l);
+    static_assert(std::is_same<decltype(s7), TSet<ComplexType>>::value);
+
+    // check TSet(std::initializer_list, size_t, Hasher)
+    TSet s8(l, 5, std::hash<ComplexType>());
+    static_assert(std::is_same<decltype(s8), TSet<ComplexType, std::hash<ComplexType>>>::value);
+
+    // check TSet(std::initializer_list, size_t, Hasher, Equality)
+    TSet s9(l, 5, std::hash<ComplexType>(), std::less<ComplexType>());
+    static_assert(std::is_same<decltype(s9), TSet<ComplexType, std::hash<ComplexType>,
+        std::less<ComplexType>>>::value);
+
+    // check TSet(std::initializer_list, size_t, Hasher, Equality, Allocator)
+    TSet s10(l, 5, std::hash<ComplexType>(), std::less<ComplexType>(), std::allocator<ComplexType>());
+    static_assert(std::is_same<decltype(s10), TSet<ComplexType, std::hash<ComplexType>,
+        std::less<ComplexType>, std::allocator<ComplexType>>>::value);
+
+    // check TSet(std::initializer_list, size_t, Allocator)
+    TSet s11(l, 5, std::allocator<ComplexType>());
+    static_assert(std::is_same<decltype(s11), TSet<ComplexType, tbb::tbb_hash<ComplexType>,
+        std::equal_to<ComplexType>, std::allocator<ComplexType>>>::value);
+
+    // check TSet(std::initializer_list, size_t, Hasher, Allocator)
+    TSet s12(l, 5, std::hash<ComplexType>(), std::allocator<ComplexType>());
+    static_assert(std::is_same<decltype(s12), TSet<ComplexType, std::hash<ComplexType>,
+        std::equal_to<ComplexType>, std::allocator<ComplexType>>>::value);
+
+    // check TSet(TSet &)
+    TSet s13(s1);
+    static_assert(std::is_same<decltype(s13), decltype(s1)>::value);
+
+    // check TSet(TSet &, Allocator)
+    TSet s14(s5, std::allocator<ComplexType>());
+    static_assert(std::is_same<decltype(s14), decltype(s5)>::value);
+
+    // check TSet(TSet &&)
+    TSet s15(std::move(s1));
+    static_assert(std::is_same<decltype(s15), decltype(s1)>::value);
+
+    // check TSet(TSet &&, Allocator)
+    TSet s16(std::move(s5), std::allocator<ComplexType>());
+    static_assert(std::is_same<decltype(s16), decltype(s5)>::value);
+}
+#endif
+
 #if !__TBB_TEST_SECONDARY
 #define INITIALIZATION_TIME_TEST_NAMESPACE            initialization_time_test
 #define TEST_INITIALIZATION_TIME_OPERATIONS_NAME      test_initialization_time_operations
@@ -197,6 +280,11 @@ int TestMain() {
 
     TestTypes();
 
+#if __TBB_CPP17_DEDUCTION_GUIDES_PRESENT
+    TestDeductionGuides<tbb::concurrent_unordered_set>();
+    TestDeductionGuides<tbb::concurrent_unordered_multiset>();
+#endif
+
     return Harness::Done;
 }
 #endif //#if !__TBB_TEST_SECONDARY
index d973619..56034fc 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -407,7 +407,7 @@ void TestSequentialFor() {
     // cross-allocator tests
 #if !defined(_WIN64) || defined(_CPPLIB_VER)
     typedef local_counting_allocator<std::allocator<int>, size_t> allocator1_t;
-    typedef tbb::cache_aligned_allocator<void> allocator2_t;
+    typedef tbb::cache_aligned_allocator<int> allocator2_t;
     typedef tbb::concurrent_vector<FooWithAssign, allocator1_t> V1;
     typedef tbb::concurrent_vector<FooWithAssign, allocator2_t> V2;
     V1 v1( v ); // checking cross-allocator copying
@@ -1750,6 +1750,40 @@ void TestDeductionGuides() {
 }
 #endif
 
+// Currently testing compilation issues with polymorphic allocator, but concurrent_vector does not
+// provide full support yet.
+// TODO: extend test with full checking polymorphic_allocator with concurrent_vector
+void TestPMRSupport() {
+    typedef pmr_stateful_allocator<int> AType;
+    typedef tbb::concurrent_vector<int, AType> VType;
+    const int VEC_SIZE = 1000;
+
+    AType original_alloc;
+    VType c(original_alloc);
+
+    // General compilation test
+    for( int i = 0; i < VEC_SIZE; ++i )  {
+        c.push_back(i*i);
+    }
+    VType::const_iterator p = c.begin();
+    for( int i = 0; i < VEC_SIZE; ++i ) {
+        ASSERT( *p == i*i, NULL ); ++p;
+    }
+
+    // Check that swap is allocator aware
+    AType swap_alloc;
+    VType swap_container(swap_alloc); swap_container.swap(c);
+    ASSERT(c.get_allocator() != swap_container.get_allocator(), "Allocator was swapped, it shouldn't");
+
+#if __TBB_CPP11_RVALUE_REF_PRESENT
+    // Move assignment operator deleted, container is allocator aware
+    AType move_alloc;
+    VType move_container(move_alloc);
+    move_container = std::move(c);
+    ASSERT(c.get_allocator() != move_container.get_allocator(), "Allocator was moved, it shouldn't");
+#endif
+}
+
 int TestMain () {
     if( MinThread<1 ) {
         REPORT("ERROR: MinThread=%d, but must be at least 1\n",MinThread); MinThread = 1;
@@ -1832,6 +1866,8 @@ int TestMain () {
 #if __TBB_CPP17_DEDUCTION_GUIDES_PRESENT
     TestDeductionGuides<tbb::concurrent_vector>();
 #endif
+    TestPMRSupport();
+
     ASSERT( !FooCount, NULL );
     REMARK("sizeof(concurrent_vector<int>) == %d\n", (int)sizeof(tbb::concurrent_vector<int>));
     return Harness::Done;
index 898f500..f36b237 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3d67b14..7806139 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
 #include "harness_assert.h"
 #include "harness_allocator.h"
 #include "harness_state_trackable.h"
+
 #include "tbb/atomic.h"
 #include "tbb/aligned_space.h"
+#include "tbb/internal/_allocator_traits.h"
+
 #include <stdexcept>
 #include <string>
 #include <functional>
index dcbeef9..a37f1b1 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 35ae53b..0605ad9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 69d8779..b4740ce 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f51fdce..e921d30 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9ca0673..9fe4a87 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6cc0d7c..b85cc60 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5f7cb11..8697686 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4a0fae1..cd4a66c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 87f6aff..cb0d793 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a571123..a950458 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 88baa6d..e45cc3c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5a14d45..3f8dd26 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2018 Intel Corporation
+    Copyright (c) 2018-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -52,7 +52,7 @@ struct TaskInfo {
     int my_task_index;
 };
 std::vector<TaskInfo> g_task_info;
-bool g_work_submitted = false;
+tbb::atomic<bool> g_work_submitted;
 
 const unsigned node_num = 100;
 const unsigned start_index = node_num / 3;
@@ -148,6 +148,13 @@ void test_node( NodeTypeCreator node_creator_func, NodePortRetriever get_sender
         if( !found_min || !found_max )
             ++internal_order_failures;
         for( unsigned i = 0; i < g_priority_task_index; ++i ) {
+            // This check might fail because priorities do not guarantee ordering, i.e. assumption
+            // that all priority nodes should increment the task counter before any subsequent
+            // no-priority node is not correct. In the worst case, a thread that took a priority
+            // node might be preempted and become the last to increment the counter. That's why the
+            // test passing is based on statistics, which could be affected by machine overload
+            // unfortunately.
+            // TODO: make the test deterministic.
             if( g_task_info[i].my_task_index > int(priority_nodes_num) + MaxThread )
                 ++global_order_failures;
         }
index dd87ace..91b90ca 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 21f5f05..74c6e4f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1b98a2a..545312a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8a5b410..9ab6fd1 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 02e400f..d8ebd06 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -19,7 +19,6 @@
 */
 
 #define TBB_PREVIEW_WAITING_FOR_WORKERS 1
-#define TBB_PREVIEW_GLOBAL_CONTROL 1
 #include "tbb/global_control.h"
 #include "harness.h"
 #define TBB_PREVIEW_LOCAL_OBSERVER 1
index c4e3f34..2010684 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -22,7 +22,6 @@
 #include "harness_inject_scheduler.h"
 #include "harness.h"
 
-#define TBB_PREVIEW_GLOBAL_CONTROL 1
 #include "tbb/global_control.h"
 #include "tbb/task_scheduler_init.h"
 #include "tbb/parallel_for.h"
index f167c20..292e606 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 716e1f4..67d3257 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0620b8f..10f7bf0 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4f0c5ee..a836a9f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 222a7bb..a3db2c3 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e5f7559..7d73cfa 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8241377..42a6356 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 235d998..6d5cb5b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2017-2018 Intel Corporation
+    Copyright (c) 2017-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
 
 #include "tbb/tbb_config.h"
 
-#if __TBB_CPP11_PRESENT && __TBB_CPP11_DECLTYPE_PRESENT
+#if __TBB_CPP11_PRESENT
 
 #include "tbb/iterators.h"
+#include "tbb/tbb_stddef.h"
 
 #include <vector>
 #include <iostream>
 //common checks of a random access iterator functionality
 template <typename RandomIt>
 void test_random_iterator(const RandomIt& it) {
+    // check that RandomIt has all necessary publicly accessible member types
+    {
+        typename RandomIt::difference_type{};
+        typename RandomIt::value_type{};
+        typename RandomIt::reference ref = *it;
+        tbb::internal::suppress_unused_warning(ref);
+        typename RandomIt::pointer{};
+        typename RandomIt::iterator_category{};
+    }
+
     ASSERT(  it == it,      "== returned false negative");
     ASSERT(!(it == it + 1), "== returned false positive");
     ASSERT(  it != it + 1,  "!= returned false negative");
@@ -104,7 +115,10 @@ struct test_counting_iterator {
         ASSERT((0 <= begin) && (begin <= end) && (end <= IntType(in.size())),
         "incorrect test_counting_iterator 'begin' and/or 'end' argument values");
 
-        auto b = tbb::counting_iterator<IntType>(begin);
+        //test that counting_iterator is default constructible
+        tbb::counting_iterator<IntType> b;
+
+        b = tbb::counting_iterator<IntType>(begin);
         auto e = tbb::counting_iterator<IntType>(end);
 
         //checks in using
@@ -129,7 +143,10 @@ struct test_counting_iterator {
 struct test_zip_iterator {
     template <typename T1, typename T2>
     void operator()(std::vector<T1>& in1, std::vector<T2>& in2) {
-        auto b = tbb::make_zip_iterator(in1.begin(), in2.begin());
+        //test that zip_iterator is default constructible
+        tbb::zip_iterator<decltype(in1.begin()), decltype(in2.begin())> b;
+
+        b = tbb::make_zip_iterator(in1.begin(), in2.begin());
         auto e = tbb::make_zip_iterator(in1.end(), in2.end());
 
         //checks in using
index cc7ccea..3509170 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ea49825..519fa14 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index cb5bb43..11c0458 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 36cab70..edf24ee 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ad8abb7..3631f57 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 50c4a73..26d6606 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0efe148..633ae82 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 830d50d..f569e1c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a07fbcd..efc23c8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 067deaf..bacdd59 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8d331cb..fd16665 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 49e29c8..477865f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 4359cf1..b12cc49 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -120,6 +120,8 @@ typedef unsigned __int64 uint64_t;
 using namespace std;
 #endif
 #include <string>
+#include <set>
+#include <sstream>
 #endif
 
 #include "../tbbmalloc/shared_utils.h"  // alignDown, alignUp, estimatedCacheLineSize
@@ -342,6 +344,40 @@ void CheckNewDeleteOverload() {
     delete []s4;
 }
 
+#if MALLOC_WINDOWS_OVERLOAD_ENABLED
+void FuncReplacementInfoCheck() {
+    char **func_replacement_log;
+    int func_replacement_status = TBB_malloc_replacement_log(&func_replacement_log);
+
+    std::set<std::string> functions;
+    functions.insert("free");
+    functions.insert("_msize");
+    functions.insert("_aligned_free");
+    functions.insert("_aligned_msize");
+
+    int status_check = 0;
+    for (char** log_string = func_replacement_log; *log_string != 0; log_string++) {
+        std::stringstream s(*log_string);
+        std::string status, function_name;
+        s >> status >> function_name;
+
+        if (status.find("Fail:") != status.npos) {
+            status_check = -1;
+        }
+
+        functions.erase(function_name);
+    }
+
+    ASSERT(functions.empty(), "Changed opcodes log must contain all required functions with \"Success\" changed status");
+    ASSERT(func_replacement_status == status_check, "replacement_opcodes_log() function return wrong status");
+
+    func_replacement_status = TBB_malloc_replacement_log(NULL);
+    ASSERT(func_replacement_status == status_check, "replacement_opcodes_log() function return wrong status");
+
+    ASSERT_WARNING(func_replacement_status == 0, "Some standart allocation functions was not replaced to tbb_malloc functions.");
+}
+#endif // MALLOC_WINDOWS_OVERLOAD_ENABLED
+
 int TestMain() {
     void *ptr = NULL;
 
@@ -426,6 +462,8 @@ int TestMain() {
     ASSERT(is_aligned(ptr, 16), NULL);
     _aligned_free(ptr1);
 
+    FuncReplacementInfoCheck();
+
 #endif
     CheckFreeAligned();
 
index 1883698..bcd79b4 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2018 Intel Corporation
+    Copyright (c) 2018-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 037c259..1237cda 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -759,7 +759,7 @@ void TestPoolDetection()
         PoolIdentityCheck check(pools, objs);
         if( k&1 )
             NativeParallelFor( POOLS, check);
-        else 
+        else
             for (int i=0; i<POOLS; i++) check(i);
 
         for (int i=0; i<POOLS; i++) {
@@ -844,6 +844,25 @@ void TestDestroyFailed()
            "expect pool_destroy() failure");
 }
 
+void TestPoolMSize() {
+    rml::MemoryPool *pool = CreateUsablePool(1024);
+
+    const int SZ = 10;
+    // Original allocation requests, random numbers from small to large
+    size_t requestedSz[SZ] = {8, 16, 500, 1000, 2000, 4000, 8000, 1024*1024, 4242+4242, 8484+8484};
+    // Unlike large objects, small objects do not store its original size along with the object itself
+    size_t allocatedSz[SZ] = {8, 16, 512, 1024, 2688, 4032, 8128, 1024*1024, 4242+4242, 8484+8484};
+
+    for (int i = 0; i < SZ; i++) {
+        void* obj = pool_malloc(pool, requestedSz[i]);
+        size_t objSize = pool_msize(pool, obj);
+        ASSERT(objSize == allocatedSz[i], "pool_msize returned the wrong value");
+        pool_free(pool, obj);
+    }
+    bool destroyed = pool_destroy(pool);
+    ASSERT(destroyed, NULL);
+}
+
 int TestMain () {
     TestTooSmallBuffer();
     TestPoolReset();
@@ -858,6 +877,7 @@ int TestMain () {
     TestLazyBootstrap();
     TestNoLeakOnDestroy();
     TestDestroyFailed();
+    TestPoolMSize();
 
     return Harness::Done;
 }
index 3cf6e74..ab4b3c2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 33a0ee4..f06d9da 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 01a7424..2234afb 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3c14dd3..7c0f51c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 5626ec7..eee1c2f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -1254,7 +1254,7 @@ void TestReallocDecreasing() {
     size_t reallocSize = (startSize / 2) - 1000; // exact realloc
     while(reallocSize > maxBinnedSize) {
 
-        // Prevent huge/large objects caching 
+        // Prevent huge/large objects caching
         defaultMemPool->extMemPool.loc.cleanAll();
         // Prevent local large object caching
         TLSData *tls = defaultMemPool->getTLS(/*create=*/false);
@@ -1283,6 +1283,54 @@ void TestReallocDecreasing() {
     /* TODO: Decreasing reallocation of large objects that fit backend cache */
     /* TODO: Small objects decreasing reallocation test */
 }
+#if !__TBB_WIN8UI_SUPPORT && defined(_WIN32)
+
+#include "../src/tbbmalloc/tbb_function_replacement.cpp"
+
+namespace FunctionReplacement {
+    FunctionInfo funcInfo = { "funcname","dllname" };
+    char **func_replacement_log;
+    int status;
+
+    void TestEmptyLog() {
+        status = TBB_malloc_replacement_log(&func_replacement_log);
+
+        ASSERT(status == -1, "Status is true, but log is empty");
+        ASSERT(*func_replacement_log == NULL, "There was no replacement, but log is not empty ");
+    }
+
+    void TestLogOverload() {
+        for (int i = 0; i < 1000; i++)
+            Log::record(funcInfo, "opcode string", true);
+
+        status = TBB_malloc_replacement_log(&func_replacement_log);
+        // Find last record
+        for (; *(func_replacement_log + 1) != 0; func_replacement_log++) {}
+
+        std::string last_line(*func_replacement_log);
+        ASSERT(status == 0, "False status, but all replacements is correct");
+        ASSERT(last_line.compare("Log was truncated.") == 0, "Log overflow was not handled");
+    }
+
+    void TestFalseStatusAfterLogOverload() {
+        // Insert false status after log overload
+        Log::record(funcInfo, "opcode string", false);
+
+        status = TBB_malloc_replacement_log(NULL);
+
+        ASSERT(status == -1, "Status is true, but we have false replacement case");
+    }
+}
+
+void TesFunctionReplacementLog() {
+    using namespace FunctionReplacement;
+    // Do not reorder the test cases
+    TestEmptyLog();
+    TestLogOverload();
+    TestFalseStatusAfterLogOverload();
+}
+
+#endif /*!__TBB_WIN8UI_SUPPORT && defined(_WIN32)*/
 
 int TestMain () {
     scalable_allocation_mode(USE_HUGE_PAGES, 0);
@@ -1323,6 +1371,12 @@ int TestMain () {
         REMARK("Transparent Huge Pages is not supported on the system - skipped the test\n");
     }
 #endif
+
+
+#if !__TBB_WIN8UI_SUPPORT && defined(_WIN32)
+    TesFunctionReplacementLog();
+#endif
+
     return Harness::Done;
 }
 
index 664bb5f..7c3c055 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 17b1f10..0a51292 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 52b5579..396e8f2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 23622a1..4d44965 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index b3a7660..f827535 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6564e31..697977d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 0c11a1d..4af7193 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9cd0aaf..050a5c7 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 949ef00..eab152e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8a7857f..6129d74 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index df5d545..30f7b75 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 13897ec..511b1d5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index b814d6d..db26532 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f297abe..3f80235 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 66fb180..6286e7a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a9a5d04..4713b18 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1bf90ad..0cd16f2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 2a9cd6a..3a094c8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6b907dc..2ba0300 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index b922a20..3783e4a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f42e063..bc25829 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 26a5111..1941335 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 9d5492c..d7697c5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 8a646f8..f5e47d6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7a0f8b3..cf9be4f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e9f213b..9a3e5a8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3911aee..a71f662 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 1a63b21..35e367b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 7ae0b7a..2b04f2a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index d24526c..8f80fe6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 788f1e8..87c9d9a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3d19c4c..8edbfb9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 76d0fae..d562299 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 3c99bbf..0625597 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 463a215..b6e1b30 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6c2420a..80710c2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index db03834..22277f6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 66823cf..a52c205 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 24e78b7..39afa90 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -20,7 +20,6 @@
 
 #define TBB_PREVIEW_LOCAL_OBSERVER 1
 #define __TBB_EXTRA_DEBUG 1
-#define TBB_PREVIEW_GLOBAL_CONTROL 1
 
 #include <stdexcept>
 #include <cstdlib>
@@ -1212,7 +1211,6 @@ void TestMultipleWaits() {
     }
 }
 //--------------------------------------------------//
-#define TBB_PREVIEW_GLOBAL_CONTROL 1
 #include "tbb/global_control.h"
 
 void TestSmallStackSize() {
index 3371e97..a10c34f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 269778e..c1197c9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index eac86a2..158c1c2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -356,7 +356,6 @@ void TestWakeups()
         tbb::parallel_for(tbb::blocked_range<int>(0, NUM_TASKS), Functor(barrier)); // auto
 }
 
-#define TBB_PREVIEW_GLOBAL_CONTROL 1
 #include "tbb/global_control.h"
 
 int TestMain () {
index 1a88acc..a7266e7 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index aaf0058..c64dd5b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index ba5c27c..8417c85 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -647,7 +647,6 @@ int RunTests () {
     return Harness::Done;
 }
 
-#define TBB_PREVIEW_GLOBAL_CONTROL 1
 #include "tbb/global_control.h"
 
 int TestMain () {
index 5c4196a..d06c36a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 998e5d9..6a11084 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 18b4656..8e562be 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index c5f46d8..4ff620c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 6e1bd62..ff49c96 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index a114106..94dd8eb 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -30,7 +30,6 @@
 #define TBB_PREVIEW_CONCURRENT_LRU_CACHE 1
 #define TBB_PREVIEW_VARIADIC_PARALLEL_INVOKE 1
 #define TBB_PREVIEW_FLOW_GRAPH_NODES 1
-#define TBB_PREVIEW_GLOBAL_CONTROL 1
 #define TBB_PREVIEW_BLOCKED_RANGE_ND 1
 #define TBB_PREVIEW_WAITING_FOR_WORKERS 1
 #endif
@@ -195,7 +194,6 @@ static void TestPreviewNames() {
     TestTypeDefinitionPresence2(blocked_rangeNd<int,4> );
 #endif
     TestTypeDefinitionPresence2(concurrent_lru_cache<int, int> );
-    TestTypeDefinitionPresence( global_control );
 #if !__TBB_TEST_SECONDARY
     TestExceptionClassExports( std::runtime_error("test"), tbb::internal::eid_blocking_thread_join_impossible );
 #endif
@@ -334,6 +332,7 @@ int TestMain ()
     TestTypeDefinitionPresence( tbb_allocator<int> );
     TestTypeDefinitionPresence( zero_allocator<int> );
     TestTypeDefinitionPresence( tick_count );
+    TestTypeDefinitionPresence( global_control );
 #if __TBB_CPP11_PRESENT
     TestTypeDefinitionPresence( counting_iterator<int> );
     TestTypeDefinitionPresence2(zip_iterator<int*,int*> );
index 19bb15c..8307eaf 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index e6230cb..5368e53 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -229,7 +229,7 @@ int main(int argc, char *argv[] ) {
 void initialize_strings_vector(std::vector <string_pair>* vector)
 {
     vector->push_back(string_pair("TBB: VERSION\t\t2019.0", required));       // check TBB_VERSION
-    vector->push_back(string_pair("TBB: INTERFACE VERSION\t11003", required)); // check TBB_INTERFACE_VERSION
+    vector->push_back(string_pair("TBB: INTERFACE VERSION\t11004", required)); // check TBB_INTERFACE_VERSION
     vector->push_back(string_pair("TBB: BUILD_DATE", required));
     vector->push_back(string_pair("TBB: BUILD_HOST", required));
     vector->push_back(string_pair("TBB: BUILD_OS", required));
index dff8ae4..87a7191 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 68b2302..eeb8f2d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index 74f54fc..aa97c1b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index b5a7e7f..0ece918 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
index f8faea1..c10fd70 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (c) 2005-2018 Intel Corporation
+    Copyright (c) 2005-2019 Intel Corporation
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.