diff --git a/CHANGES b/CHANGES index 1421c43323..f2fc2d3843 100644 --- 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 4.4 Update 3 +TBB_INTERFACE_VERSION == 9003 + +Changes (w.r.t. Intel TBB 4.4 Update 2): + +- Modified parallel_sort to not require a default constructor for values + and to use iter_swap() for value swapping. +- Added support for creating or initializing a task_arena instance that + is connected to the arena currently used by the thread. +- graph/binpack example modified to use multifunction_node. +- For performance analysis, use Intel(R) VTune(TM) Amplifier XE 2015 + and higher; older versions are no longer supported. +- Improved support for compilation with disabled RTTI, by omitting its use + in auxiliary code, such as assertions. However some functionality, + particularly the flow graph, does not work if RTTI is disabled. +- The tachyon example for Android* can be built using Android Studio 1.5 + and higher with experimental Gradle plugin 0.4.0. + +Preview Features: + +- Added class opencl_subbufer that allows using OpenCL* sub-buffer + objects with opencl_node. +- Class global_control supports the value of 1 for + max_allowed_parallelism. + +Bugs fixed: + +- Fixed a race causing "TBB Warning: setaffinity syscall failed" message. +- Fixed a compilation issue on OS X* with Intel(R) C++ Compiler 15.0. +- Fixed a bug in queuing_rw_mutex::downgrade() that could temporarily + block new readers. +- Fixed speculative_spin_rw_mutex to stop using the lazy subscription + technique due to its known flaws. +- Fixed memory leaks in the tool support code. + +------------------------------------------------------------------------ Intel TBB 4.4 Update 2 TBB_INTERFACE_VERSION == 9002 diff --git a/Makefile b/Makefile index bc459897b3..38f1c3c4af 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/README.md b/README.md index 4051868f72..2569905448 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Intel(R) Threading Building Blocks 4.4 Update 2 +# Intel(R) Threading Building Blocks 4.4 Update 3 Intel(R) Threading Building Blocks (Intel(R) TBB) lets you easily write parallel C++ programs that take full advantage of multicore performance, that are portable, composable and have future-proof scalability. @@ -8,7 +8,7 @@ Here are the latest [Changes] (CHANGES) and [Release Notes] (doc/Release_Notes.txt) (contains system requirements and known issues). ## Licensing -Intel(R) TBB 4.4 Update 2 is licensed under [GPLv2] (COPYING) with the runtime exception. +Intel(R) TBB 4.4 Update 3 is licensed under [GPLv2] (COPYING) with the runtime exception. ## Documentation * Intel(R) TBB [tutorial] (https://software.intel.com/en-us/tbb-tutorial) diff --git a/build/AIX.gcc.inc b/build/AIX.gcc.inc index 3b19a6d92f..b096ea7dd2 100644 --- a/build/AIX.gcc.inc +++ b/build/AIX.gcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/AIX.inc b/build/AIX.inc index 5f87361d2f..1fe0dda3fe 100644 --- a/build/AIX.inc +++ b/build/AIX.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/FreeBSD.clang.inc b/build/FreeBSD.clang.inc index 5cee5d78fc..742277b0a8 100644 --- a/build/FreeBSD.clang.inc +++ b/build/FreeBSD.clang.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/FreeBSD.gcc.inc b/build/FreeBSD.gcc.inc index 20f002711a..2107a8f765 100644 --- a/build/FreeBSD.gcc.inc +++ b/build/FreeBSD.gcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/FreeBSD.inc b/build/FreeBSD.inc index 11d125e0de..30d14041e4 100644 --- a/build/FreeBSD.inc +++ b/build/FreeBSD.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/Makefile.rml b/build/Makefile.rml index 43cba2dd60..c56bb6fde7 100644 --- a/build/Makefile.rml +++ b/build/Makefile.rml @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/Makefile.tbb b/build/Makefile.tbb index 06e76e2b32..fc6549713b 100644 --- a/build/Makefile.tbb +++ b/build/Makefile.tbb @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/Makefile.tbbmalloc b/build/Makefile.tbbmalloc index f2be65e12a..25e61ee301 100644 --- a/build/Makefile.tbbmalloc +++ b/build/Makefile.tbbmalloc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/Makefile.tbbproxy b/build/Makefile.tbbproxy index 706037e7ed..a7ce066a73 100644 --- a/build/Makefile.tbbproxy +++ b/build/Makefile.tbbproxy @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/Makefile.test b/build/Makefile.test index 13e1ef6c71..aac409bcff 100644 --- a/build/Makefile.test +++ b/build/Makefile.test @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/SunOS.gcc.inc b/build/SunOS.gcc.inc index 65df43c83c..dfeda53943 100644 --- a/build/SunOS.gcc.inc +++ b/build/SunOS.gcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/SunOS.inc b/build/SunOS.inc index 6f46bab54f..be790739d3 100644 --- a/build/SunOS.inc +++ b/build/SunOS.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/SunOS.suncc.inc b/build/SunOS.suncc.inc index 5a6c6d90a1..0215e605fb 100644 --- a/build/SunOS.suncc.inc +++ b/build/SunOS.suncc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/android.gcc.inc b/build/android.gcc.inc index fd4607af57..90b573ba96 100644 --- a/build/android.gcc.inc +++ b/build/android.gcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -45,14 +45,12 @@ ifeq ($(APP_PIE), false) PIE_FLAG= endif -LINK_FLAGS = -Wl,-rpath-link=. -rdynamic $(PIE_FLAG) +LINK_FLAGS = -Wl,-rpath-link=. -rdynamic C_FLAGS = $(CPLUS_FLAGS) -# gcc 4.4 and higher support C++11 -ifneq (,$(shell $(CPLUS) -dumpversion | egrep "^(4\.[4-9]|[5-9])")) - # On Android/gcc 4.4.3, -std=c++0x causes ::int64_t and ::uint64_t to be undefined. - CPP11_FLAGS = -std=gnu++0x $(DEFINE_KEY)_TBB_CPP0X -endif +# Supported g++ versions support C++11 +# On Android/gcc 4.4.3, -std=c++0x causes ::int64_t and ::uint64_t to be undefined. +CPP11_FLAGS = -std=c++11 $(DEFINE_KEY)_TBB_CPP0X ifeq ($(cfg), release) CPLUS_FLAGS = -O2 @@ -67,14 +65,6 @@ ifneq (,$(findstring $(arch),ia32 intel64)) CPLUS_FLAGS += $(DEFINE_KEY)DO_ITT_NOTIFY endif -ifneq (0, $(dlopen_workaround)) - CPLUS_FLAGS += $(DEFINE_KEY)__TBB_USE_DLOPEN_REENTRANCY_WORKAROUND=1 - CPLUS_FLAGS += $(DEFINE_KEY)__TBB_USE_DLOPEN_MAIN_PROGRAM_WORKAROUND=1 -else - CPLUS_FLAGS += $(DEFINE_KEY)__TBB_USE_DLOPEN_REENTRANCY_WORKAROUND=0 - CPLUS_FLAGS += $(DEFINE_KEY)__TBB_USE_DLOPEN_MAIN_PROGRAM_WORKAROUND=0 -endif - ifeq (0, $(dynamic_load)) CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DYNAMIC_LOAD_ENABLED=0 endif @@ -95,15 +85,13 @@ ifeq (ia32,$(arch)) # TODO: Determine best setting of -march and add to CPLUS_FLAGS CPLUS_FLAGS += -m32 LIB_LINK_FLAGS += -m32 -endif - -ifeq (intel64,$(arch)) +else ifeq (intel64,$(arch)) CPLUS_FLAGS += -m64 LIB_LINK_FLAGS += -m64 -endif - -ifeq (arm,$(findstring arm,$(arch))) +else ifeq (arm,$(arch)) CPLUS_FLAGS += -march=armv7-a $(DEFINE_KEY)TBB_USE_GCC_BUILTINS=1 $(DEFINE_KEY)__TBB_64BIT_ATOMICS=0 +else ifeq (arm64,$(arch)) + CPLUS_FLAGS += -march=armv8-a endif #------------------------------------------------------------------------------ diff --git a/build/android.icc.inc b/build/android.icc.inc new file mode 100644 index 0000000000..216cf7b4e9 --- /dev/null +++ b/build/android.icc.inc @@ -0,0 +1,128 @@ +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. +# +# This file is part of Threading Building Blocks. Threading Building Blocks is free software; +# you can redistribute it and/or modify it under the terms of the GNU General Public License +# version 2 as published by the Free Software Foundation. Threading Building Blocks is +# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU General Public License for more details. You should have received a copy of +# the GNU General Public License along with Threading Building Blocks; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# As a special exception, you may use this file as part of a free software library without +# restriction. Specifically, if other files instantiate templates or use macros or inline +# functions from this file, or you compile this file and link it with other files to produce +# an executable, this file does not by itself cause the resulting executable to be covered +# by the GNU General Public License. This exception does not however invalidate any other +# reasons why the executable file might be covered by the GNU General Public License. + + +COMPILE_ONLY = -c -MMD +PREPROC_ONLY = -E -x c++ +INCLUDE_KEY = -I +DEFINE_KEY = -D +OUTPUT_KEY = -o # +OUTPUTOBJ_KEY = -o # +PIC_KEY = -fPIC +WARNING_AS_ERROR_KEY = -Werror +WARNING_KEY = +TEST_WARNING_KEY = -Wshadow -Woverloaded-virtual -Wextra + +WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor +DYLIB_KEY = -shared +EXPORT_KEY = -Wl,--version-script, +LIBDL = -ldl + +CPLUS = icpc +CONLY = icc + +# -soname is necessary for proper linkage to TBB prebuilt libraries when building application with Android SDK +LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY) + +# pie is necessary for test executables to work and might be removed if newer NDK will add it implicitly +PIE_FLAG = -pie +ifeq ($(APP_PIE), false) + PIE_FLAG= +endif + +LINK_FLAGS = -Wl,-rpath-link=. -rdynamic +C_FLAGS = $(CPLUS_FLAGS) + +CPP11_FLAGS = -std=c++11 $(DEFINE_KEY)_TBB_CPP0X + +ifeq ($(cfg), release) + CPLUS_FLAGS = -O2 +endif +ifeq ($(cfg), debug) + CPLUS_FLAGS = -g -O0 $(DEFINE_KEY)TBB_USE_DEBUG +endif + +CPLUS_FLAGS += $(DEFINE_KEY)USE_PTHREAD $(DEFINE_KEY)_GLIBCXX_HAVE_FENV_H + +ifneq (,$(findstring $(arch),ia32 intel64)) + CPLUS_FLAGS += $(DEFINE_KEY)DO_ITT_NOTIFY +endif + +ifeq (0, $(dynamic_load)) + CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DYNAMIC_LOAD_ENABLED=0 +endif + + +# Paths to the NDK prebuilt tools and libraries +CPLUS_FLAGS += --sysroot=$(SYSROOT) +LIB_LINK_FLAGS += --sysroot=$(SYSROOT) +# the -static-intel flag is to remove the need to copy Intel-specific libs to the device. +LIBS = -L$(CPLUS_LIB_PATH) -lgnustl_shared -static-intel + +# This causes CPP11_FLAGS to be issued twice for test_lambda.cpp +# TODO: Fix this in general for all platforms once the correct strategy is determined. +ifneq (00,$(lambdas)$(cpp0x)) + CXX_ONLY_FLAGS += $(CPP11_FLAGS) +endif + +ifeq (ia32,$(arch)) + # TODO: Determine best setting of -march and add to CPLUS_FLAGS + CPLUS_FLAGS += -m32 -march=pentium4 -falign-stack=maintain-16-byte + LIB_LINK_FLAGS += -m32 +else + ifeq (intel64,$(arch)) + CPLUS_FLAGS += -m64 + LIB_LINK_FLAGS += -m64 + endif +endif + +ifeq (arm,$(findstring arm,$(arch))) + $(error "Unsupported architecture $(arch) for icc compiler") +endif + +#------------------------------------------------------------------------------ +# Setting assembler data. +#------------------------------------------------------------------------------ +TBB_ASM.OBJ= +MALLOC_ASM.OBJ= + +ASM = $(tbb_tool_prefix)as +ifeq (intel64,$(arch)) + ASM_FLAGS += --64 +endif +ifeq (ia32,$(arch)) + ASM_FLAGS += --32 +endif +ifeq ($(cfg),debug) + ASM_FLAGS += -g +endif + +ASSEMBLY_SOURCE=$(arch)-gas +#------------------------------------------------------------------------------ +# End of setting assembler data. +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# Setting tbbmalloc data. +#------------------------------------------------------------------------------ + +M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions + +#------------------------------------------------------------------------------ +# End of setting tbbmalloc data. +#------------------------------------------------------------------------------ diff --git a/build/android.inc b/build/android.inc index 061e308bde..6c3988348d 100644 --- a/build/android.inc +++ b/build/android.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -28,35 +28,34 @@ ifeq (android,$(findstring android,$(tbb_os))) $(error TBB only supports cross-compilation for Android. Specify "target=android" instead.) endif -ifneq ("command line","$(origin arch)") - ifeq (icc,$(compiler)) - export COMPILER_VERSION := ICC: $(shell icc -V &1 | grep 'Version') - ifneq (,$(findstring IA-32, $(COMPILER_VERSION))) - export arch:=ia32 - else ifneq (,$(findstring Intel(R) 64, $(COMPILER_VERSION))) - export arch:=intel64 - else - $(error "No support for Android in $(COMPILER_VERSION)") - endif - - else - ifdef ANDROID_SERIAL - uname_m:=$(shell adb shell uname -m) - ifeq (i686,$(uname_m)) +ifndef BUILDING_PHASE + ifneq ("command line","$(origin arch)") + ifeq (icc,$(compiler)) + export COMPILER_VERSION := ICC: $(shell icc -V &1 | grep 'Version') + ifneq (,$(findstring running on IA-32, $(COMPILER_VERSION))) export arch:=ia32 + else ifneq (,$(findstring running on Intel(R) 64, $(COMPILER_VERSION))) + export arch:=intel64 else - export arch:=$(uname_m) + $(error "No support for Android in $(COMPILER_VERSION)") endif + else - ifndef arch - $(error "No target architecture specified and \'ANDROID_SERIAL\' environment variable specifying target device not set") + ifdef ANDROID_SERIAL + uname_m:=$(shell adb shell uname -m) + ifeq (i686,$(uname_m)) + export arch:=ia32 + else + export arch:=$(uname_m) + endif endif endif endif endif -# Many OS versions (Android 4.0.[0-3] for example) need workaround for dlopen to avoid non-recursive loader lock hang -export dlopen_workaround = 1 +ifeq ("$(arch)","") + $(error "No target architecture specified and \'ANDROID_SERIAL\' environment variable specifying target device not set") +endif # Android platform only supported from TBB 4.1 forward NO_LEGACY_TESTS = 1 diff --git a/build/android.linux.inc b/build/android.linux.inc index ab40bcc996..cfaef9e8a9 100644 --- a/build/android.linux.inc +++ b/build/android.linux.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -32,8 +32,8 @@ endif gcc_version = $(shell $(tbb_tool_prefix)g++ -dumpversion) ifdef ANDROID_NDK_ROOT - $(warning "NDK version $(ANDROID_NDK_ROOT)") ndk_version:= $(lastword $(subst -, ,$(ANDROID_NDK_ROOT))) + $(warning "NDK version $(ndk_version)") else $(warning "NDK version not set in environment, using \'unknown\' instead.") ndk_version:=unknown diff --git a/build/android.linux.launcher.sh b/build/android.linux.launcher.sh index 5de025cb8f..68eb8e4dfb 100644 --- a/build/android.linux.launcher.sh +++ b/build/android.linux.launcher.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -84,11 +84,11 @@ else # fi # # Find the TBB libraries and add them to the list. # Add TBB libraries from the current directory that contains libtbb* files -files="$(/bin/ls libtbb* 2> /dev/null)" # +files="$(ls libtbb* 2> /dev/null)" # [ -z "$files" ] || fnamelist="$fnamelist $files" # # Add any libraries built for specific tests. exeroot=${exename%\.*} # -files="$(/bin/ls ${exeroot}*.so ${exeroot}*.so.* 2> /dev/null)" # +files="$(ls ${exeroot}*.so ${exeroot}*.so.* 2> /dev/null)" # [ -z "$files" ] || fnamelist="$fnamelist $files" # # TODO: Add extra libraries from the Intel(R) Compiler for certain tests # found=$(echo $exename | egrep 'test_malloc_atexit\|test_malloc_lib_unload' 2> /dev/null) @@ -137,6 +137,7 @@ for fullname in "$@"; do { # [ -z "$ldpreload" ] || run_prefix="LD_PRELOAD='$ldpreload' $run_prefix" # [ $verbose ] && echo Running $run_prefix ./$exename $* # run_env="$run_env cd $targetdir; export LD_LIBRARY_PATH=." # +[ -z "$VIRTUAL_MACHINE" ] || run_env="$run_env; export VIRTUAL_MACHINE=$VIRTUAL_MACHINE" # # The return_code file is the best way found to return the status of the test execution when using adb shell. eval 'adb shell "$run_env; $run_prefix ./$exename $* || echo -n \$? >error_code"' "${OUTPUT}" # # Capture the return code string and remove the trailing \r from the return_code file contents diff --git a/build/android.macos.inc b/build/android.macos.inc index 2f1b348316..04b2da3a63 100644 --- a/build/android.macos.inc +++ b/build/android.macos.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -32,8 +32,8 @@ endif gcc_version = $(shell $(tbb_tool_prefix)g++ -dumpversion) ifdef ANDROID_NDK_ROOT - $(warning "NDK version $(ANDROID_NDK_ROOT)") ndk_version:= $(lastword $(subst -, ,$(ANDROID_NDK_ROOT))) + $(warning "NDK version $(ndk_version)") else $(warning "NDK version not set in environment, using \'unknown\' instead.") ndk_version:=unknown diff --git a/build/android.windows.inc b/build/android.windows.inc index 742f240a7f..c402d91a54 100644 --- a/build/android.windows.inc +++ b/build/android.windows.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -32,8 +32,8 @@ endif gcc_version = $(shell $(tbb_tool_prefix)g++ -dumpversion) ifdef ANDROID_NDK_ROOT - $(warning "NDK version $(ANDROID_NDK_ROOT)") ndk_version:= $(lastword $(subst -, ,$(ANDROID_NDK_ROOT))) + $(warning "NDK version $(ndk_version)") else $(warning "NDK version not set in environment, using \'unknown\' instead.") ndk_version:=unknown diff --git a/build/big_iron.inc b/build/big_iron.inc index 9bafc78d88..40a480717a 100644 --- a/build/big_iron.inc +++ b/build/big_iron.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/common.inc b/build/common.inc index 6aa702d8b6..a068247baf 100644 --- a/build/common.inc +++ b/build/common.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/common_rules.inc b/build/common_rules.inc index 410bd9afd7..b99f9819ae 100644 --- a/build/common_rules.inc +++ b/build/common_rules.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -92,7 +92,7 @@ endef LINK_FILES+=$(TEST_LIBS) # Rule for generating executable test %.$(TEST_EXT): %.$(OBJ) $(TEST_LIBS) $(TEST_PREREQUISITE) $(if $(use_proxy),$(PROXY.LIB)) - $(call make-test-binary,$@,$< $(LINK_FILES)) + $(call make-test-binary,$@,$< $(LINK_FILES) $(PIE_FLAG)) # Rules for generating a test DLL %_dll.$(DLL): LINK_FLAGS += $(PIC_KEY) $(DYLIB_KEY) diff --git a/build/detect.js b/build/detect.js index 9315fe2fed..ebe6c9b293 100644 --- a/build/detect.js +++ b/build/detect.js @@ -1,4 +1,4 @@ -// Copyright 2005-2015 Intel Corporation. All Rights Reserved. +// Copyright 2005-2016 Intel Corporation. All Rights Reserved. // // This file is part of Threading Building Blocks. Threading Building Blocks is free software; // you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/generate_tbbvars.bat b/build/generate_tbbvars.bat index 2eb47c17ad..29cf74dcf7 100644 --- a/build/generate_tbbvars.bat +++ b/build/generate_tbbvars.bat @@ -1,6 +1,6 @@ @echo off REM -REM Copyright 2005-2015 Intel Corporation. All Rights Reserved. +REM Copyright 2005-2016 Intel Corporation. All Rights Reserved. REM REM This file is part of Threading Building Blocks. Threading Building Blocks is free software; REM you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/generate_tbbvars.sh b/build/generate_tbbvars.sh index 2f15e1a639..cea33ad400 100644 --- a/build/generate_tbbvars.sh +++ b/build/generate_tbbvars.sh @@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/index.html b/build/index.html index 7c69ebb5c5..268e8d04e2 100644 --- a/build/index.html +++ b/build/index.html @@ -223,7 +223,7 @@

To port the Makefile infrastructure:


Up to parent directory

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel and Itanium are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/build/ios.clang.inc b/build/ios.clang.inc new file mode 100644 index 0000000000..a4b6db43a7 --- /dev/null +++ b/build/ios.clang.inc @@ -0,0 +1,23 @@ +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. +# +# This file is part of Threading Building Blocks. Threading Building Blocks is free software; +# you can redistribute it and/or modify it under the terms of the GNU General Public License +# version 2 as published by the Free Software Foundation. Threading Building Blocks is +# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU General Public License for more details. You should have received a copy of +# the GNU General Public License along with Threading Building Blocks; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# As a special exception, you may use this file as part of a free software library without +# restriction. Specifically, if other files instantiate templates or use macros or inline +# functions from this file, or you compile this file and link it with other files to produce +# an executable, this file does not by itself cause the resulting executable to be covered +# by the GNU General Public License. This exception does not however invalidate any other +# reasons why the executable file might be covered by the GNU General Public License. + +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 diff --git a/build/ios.macos.inc b/build/ios.macos.inc new file mode 100644 index 0000000000..f03bd8c809 --- /dev/null +++ b/build/ios.macos.inc @@ -0,0 +1,36 @@ +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. +# +# This file is part of Threading Building Blocks. Threading Building Blocks is free software; +# you can redistribute it and/or modify it under the terms of the GNU General Public License +# version 2 as published by the Free Software Foundation. Threading Building Blocks is +# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU General Public License for more details. You should have received a copy of +# the GNU General Public License along with Threading Building Blocks; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# As a special exception, you may use this file as part of a free software library without +# restriction. Specifically, if other files instantiate templates or use macros or inline +# functions from this file, or you compile this file and link it with other files to produce +# an executable, this file does not by itself cause the resulting executable to be covered +# by the GNU General Public License. This exception does not however invalidate any other +# reasons why the executable file might be covered by the GNU General Public License. + +ifneq ($(arch),$(filter $(arch),ia32 intel64 armv7 armv7s arm64)) + $(error $(arch) is unknown architecture. Known arhitechtures are ia32 intel64 armv7 armv7s arm64) +endif + +# if target is ios but arch is ia32/intel64 then build for 32/64 simulator! +ifeq (,$(SDKROOT)) + ifeq ($(arch),$(filter $(arch),ia32 intel64)) + export SDKROOT:=$(shell xcodebuild -sdk -version | grep -o -E '/.*SDKs/iPhoneSimulator.*' 2>/dev/null) + else + export SDKROOT:=$(shell xcodebuild -sdk -version | grep -o -E '/.*SDKs/iPhoneOS.*' 2>/dev/null) + endif +endif +ifeq (,$(SDKROOT)) + $(error iOS* SDK not found) +endif + +ios_version:=$(shell echo $(SDKROOT) | sed -e "s/.*[a-z,A-Z]\(.*\).sdk/\1/") +runtime:=cc$(clang_version)_ios$(ios_version) diff --git a/build/linux.clang.inc b/build/linux.clang.inc index de9aee5301..891d0c5d9b 100644 --- a/build/linux.clang.inc +++ b/build/linux.clang.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/linux.gcc.inc b/build/linux.gcc.inc index 9d93cfc179..0112665ff5 100644 --- a/build/linux.gcc.inc +++ b/build/linux.gcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/linux.icc.inc b/build/linux.icc.inc index 4d1da053c0..41d381dc74 100644 --- a/build/linux.icc.inc +++ b/build/linux.icc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/linux.inc b/build/linux.inc index 0fae348538..b2a9abb6a7 100644 --- a/build/linux.inc +++ b/build/linux.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -20,14 +20,16 @@ ifeq (icc,$(compiler)) export COMPILER_VERSION := ICC: $(shell icc -V &1 | grep 'Version') - ifneq (,$(findstring IA-32, $(COMPILER_VERSION))) + ifneq (,$(findstring running on IA-32, $(COMPILER_VERSION))) export arch:=ia32 - endif - ifneq (,$(findstring Intel(R) 64, $(COMPILER_VERSION))) - export arch:=intel64 - endif - ifneq (,$(findstring IA-64, $(COMPILER_VERSION))) - export arch:=ia64 + else + ifneq (,$(findstring running on Intel(R) 64, $(COMPILER_VERSION))) + export arch:=intel64 + else + ifneq (,$(findstring IA-64, $(COMPILER_VERSION))) + export arch:=ia64 + endif + endif endif ifeq (,$(arch)) $(warning "Unknown Intel compiler") diff --git a/build/linux.pathcc.inc b/build/linux.pathcc.inc index 477de03114..c4f8ea8454 100644 --- a/build/linux.pathcc.inc +++ b/build/linux.pathcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/linux.xl.inc b/build/linux.xl.inc index 083b883297..1b8d149599 100644 --- a/build/linux.xl.inc +++ b/build/linux.xl.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/macos.clang.inc b/build/macos.clang.inc index b56d86cafa..d297f8e276 100644 --- a/build/macos.clang.inc +++ b/build/macos.clang.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -86,26 +86,15 @@ ifeq (ppc32,$(arch)) LIB_LINK_FLAGS += -arch ppc endif -ifeq (armv7,$(arch)) - CPLUS_FLAGS += -arch armv7 -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode - LINK_FLAGS += -arch armv7 -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode - LIB_LINK_FLAGS += -arch armv7 -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode -endif - -ifeq (armv7s,$(arch)) - CPLUS_FLAGS += -arch armv7s -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode - LINK_FLAGS += -arch armv7s -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode - LIB_LINK_FLAGS += -arch armv7s -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode -endif - -ifeq (arm64,$(arch)) - CPLUS_FLAGS += -arch arm64 -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode - LINK_FLAGS += -arch arm64 -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode - LIB_LINK_FLAGS += -arch arm64 -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode +ifeq ($(arch),$(filter $(arch),armv7 armv7s arm64)) + CPLUS_FLAGS += -arch $(arch) + LINK_FLAGS += -arch $(arch) + LIB_LINK_FLAGS += -arch $(arch) endif ifdef SDKROOT CPLUS_FLAGS += -isysroot $(SDKROOT) + LINK_FLAGS += -L$(SDKROOT)/usr/lib/system -L$(SDKROOT)/usr/lib/ LIB_LINK_FLAGS += -L$(SDKROOT)/usr/lib/system -L$(SDKROOT)/usr/lib/ endif diff --git a/build/macos.gcc.inc b/build/macos.gcc.inc index 75a9b8c80a..5947b245d7 100644 --- a/build/macos.gcc.inc +++ b/build/macos.gcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/macos.icc.inc b/build/macos.icc.inc index cadeb1d860..f9255675f3 100644 --- a/build/macos.icc.inc +++ b/build/macos.icc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/macos.inc b/build/macos.inc index e386826c6c..b876c429cd 100644 --- a/build/macos.inc +++ b/build/macos.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -20,10 +20,10 @@ ifeq (icc,$(compiler)) export COMPILER_VERSION := ICC: $(shell icc -V &1 | grep 'Version') - ifneq (,$(findstring IA-32, $(COMPILER_VERSION))) + ifneq (,$(findstring running on IA-32, $(COMPILER_VERSION))) export arch:=ia32 else - ifneq (,$(findstring Intel(R) 64, $(COMPILER_VERSION))) + ifneq (,$(findstring running on Intel(R) 64, $(COMPILER_VERSION))) export arch:=intel64 endif endif @@ -48,23 +48,12 @@ ifndef arch endif endif -ifeq (ios,$(target)) - ifneq (armv7, $(arch)) - $(error $(arch) not supported for target 'ios') - endif - export SDKROOT?=$(shell xcodebuild -sdk -version | grep -o -E '/.*SDKs/iPhoneOS.*' 2>/dev/null) - ifeq (,$(SDKROOT)) - $(error iOS SDK not found) - endif - # next, use a single compiler include file for both iOS* and OS X* builds. - override target:=macos - export target -endif - ifndef runtime - gcc_version:=$(shell gcc -dumpversion) - os_version:=$(shell /usr/bin/sw_vers -productVersion) - export runtime:=cc$(gcc_version)_os$(os_version) + clang_version:=$(shell clang -v 2>&1 >/dev/null | grep version | sed -e "s/.*version \(.*[0-9]\) .*/\1/") + ifndef os_version + os_version:=$(shell /usr/bin/sw_vers -productVersion) + endif + export runtime:=cc$(clang_version)_os$(os_version) endif native_compiler := clang diff --git a/build/mic.icc.inc b/build/mic.icc.inc index 448f1a225a..3a1b8bff9f 100644 --- a/build/mic.icc.inc +++ b/build/mic.icc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/mic.linux.inc b/build/mic.linux.inc index 00b28e4699..36ee9e29e4 100644 --- a/build/mic.linux.inc +++ b/build/mic.linux.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/mic.linux.launcher.sh b/build/mic.linux.launcher.sh index 0409f7604f..e8b8fdc3c0 100644 --- a/build/mic.linux.launcher.sh +++ b/build/mic.linux.launcher.sh @@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -72,6 +72,7 @@ targetdir="`$RSH mktemp -d /tmp/tbbtestXXXXXX 2>/dev/null`" # hostdir="`mktemp -d /tmp/tbbtestXXXXXX 2>/dev/null`" # # function copy_files { # + [ $verbose ] && echo Going to copy $* # eval "cp $* $hostdir/ $SUPPRESS 2>/dev/null || exit \$?" # eval "$RCP $hostdir/* $MICDEV:$targetdir/ $SUPPRESS 2>/dev/null || exit \$?" # eval "rm $hostdir/* $SUPPRESS 2>/dev/null || exit \$?" # @@ -100,8 +101,11 @@ fnamelist="" # # For example, go through MIC_LD_LIBRARY_PATH and add TBB libraries from the first # directory that contains tbb files mic_dir_list=`echo .:$MIC_LD_LIBRARY_PATH | tr : " "` # +[ $verbose ] && echo Searching libraries in $mic_dir_list for name in $ldd_list; do # adds the first matched name in specified dirs - fnamelist+="`find $mic_dir_list -name $name -a -readable -print -quit 2>/dev/null` "||: # + found="`find -L $mic_dir_list -name $name -a -readable -print -quit 2>/dev/null` "||: # + [ $verbose ] && echo File $name: $found + fnamelist+=$found done # # # Remove extra spaces. diff --git a/build/mic.offload.inc b/build/mic.offload.inc index 0cf51a2af4..8bf0fd7a2d 100644 --- a/build/mic.offload.inc +++ b/build/mic.offload.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/test_launcher.bat b/build/test_launcher.bat index 35bbf4333e..eefe00bd77 100644 --- a/build/test_launcher.bat +++ b/build/test_launcher.bat @@ -1,6 +1,6 @@ @echo off REM -REM Copyright 2005-2015 Intel Corporation. All Rights Reserved. +REM Copyright 2005-2016 Intel Corporation. All Rights Reserved. REM REM This file is part of Threading Building Blocks. Threading Building Blocks is free software; REM you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/test_launcher.sh b/build/test_launcher.sh index 882e36c94b..cea0c62f8b 100644 --- a/build/test_launcher.sh +++ b/build/test_launcher.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/version_info_aix.sh b/build/version_info_aix.sh index 5df78aff5a..64725e0e73 100644 --- a/build/version_info_aix.sh +++ b/build/version_info_aix.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/version_info_android.sh b/build/version_info_android.sh index 55af4ea57c..32ec518c2b 100644 --- a/build/version_info_android.sh +++ b/build/version_info_android.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/version_info_linux.sh b/build/version_info_linux.sh index 5df78aff5a..64725e0e73 100644 --- a/build/version_info_linux.sh +++ b/build/version_info_linux.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/version_info_macos.sh b/build/version_info_macos.sh index 2db20af0cf..37b998427c 100644 --- a/build/version_info_macos.sh +++ b/build/version_info_macos.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/version_info_sunos.sh b/build/version_info_sunos.sh index 3ac838c46c..7a021e2e42 100644 --- a/build/version_info_sunos.sh +++ b/build/version_info_sunos.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/version_info_windows.js b/build/version_info_windows.js index b0df0985c0..653d295b16 100644 --- a/build/version_info_windows.js +++ b/build/version_info_windows.js @@ -1,4 +1,4 @@ -// Copyright 2005-2015 Intel Corporation. All Rights Reserved. +// Copyright 2005-2016 Intel Corporation. All Rights Reserved. // // This file is part of Threading Building Blocks. Threading Building Blocks is free software; // you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -40,7 +40,7 @@ WScript.echo( "#N \": BUILD_OS\\t\\t" + if ( WScript.Arguments(0).toLowerCase().match("gcc") ) { tmpExec = WshShell.Exec(WScript.Arguments(0) + " --version"); - WScript.echo( "#N \": BUILD_COMPILER\\t" + + WScript.echo( "#N \": BUILD_GCC\\t" + tmpExec.StdOut.ReadLine() + "\" ENDL \\" ); diff --git a/build/vs2010/index.html b/build/vs2010/index.html index 8f506a130e..20afc1548a 100644 --- a/build/vs2010/index.html +++ b/build/vs2010/index.html @@ -12,7 +12,7 @@

Files

tbb.vcxproj
Library project file.
tbbmalloc.vcxproj -
Scalable allocator library project file. Allocator sources are expected to be located in ../../src/tbbmalloc folder.
+
Scalable allocator library project file.
tbbmalloc_proxy.vcxproj
Standard allocator replacement project file.
@@ -20,7 +20,7 @@

Files


Up to parent directory

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/build/vs2010/tbb.vcxproj b/build/vs2010/tbb.vcxproj index 4ba5a59115..f86cda2232 100644 --- a/build/vs2010/tbb.vcxproj +++ b/build/vs2010/tbb.vcxproj @@ -107,29 +107,29 @@ <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false AllRules.ruleset @@ -197,9 +197,6 @@ true EnableFastChecks MultiThreadedDebugDLL - false - - Level4 ProgramDatabase false @@ -249,9 +246,6 @@ .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) MultiThreadedDLL - false - - Level4 ProgramDatabase @@ -306,9 +300,6 @@ true EnableFastChecks MultiThreadedDebug - false - - Level4 ProgramDatabase false @@ -358,9 +349,6 @@ .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) MultiThreaded - false - - Level4 ProgramDatabase @@ -396,46 +384,38 @@ true building atomic_support.obj - ml64 /Fo"intel64\Debug-MT\atomic_support.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Debug-MT\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) true building atomic_support.obj - ml64 /Fo"intel64\Debug\atomic_support.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Debug\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) true building atomic_support.obj - ml64 /Fo"intel64\Release-MT\atomic_support.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Release-MT\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) true building atomic_support.obj - ml64 /Fo"intel64\Release\atomic_support.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Release\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) true building intel64_misc.obj - ml64 /Fo"intel64\Debug-MT\intel64_misc.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm - - intel64\Debug-MT\intel64_misc.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm + $(IntDir)%(FileName).obj;%(Outputs) true building intel64_misc.obj - ml64 /Fo"intel64\Debug\intel64_misc.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm - - intel64\Debug\intel64_misc.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm + $(IntDir)%(FileName).obj;%(Outputs) true building intel64_misc.obj - ml64 /Fo"intel64\Release-MT\intel64_misc.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm - - intel64\Release-MT\intel64_misc.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm + $(IntDir)%(FileName).obj;%(Outputs) true building intel64_misc.obj - ml64 /Fo"intel64\Release\intel64_misc.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm - - intel64\Release\intel64_misc.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm + $(IntDir)%(FileName).obj;%(Outputs) /coff /Zi @@ -454,24 +434,20 @@ true building itsx.obj - ml64 /Fo"intel64\Debug-MT\itsx.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm - - intel64\Debug-MT\itsx.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm + $(IntDir)%(FileName).obj;%(Outputs) true building itsx.obj - ml64 /Fo"intel64\Debug\itsx.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm - - intel64\Debug\itsx.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm + $(IntDir)%(FileName).obj;%(Outputs) true building itsx.obj - ml64 /Fo"intel64\Release-MT\itsx.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm - - intel64\Release-MT\itsx.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm + $(IntDir)%(FileName).obj;%(Outputs) true building itsx.obj - ml64 /Fo"intel64\Release\itsx.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm - - intel64\Release\itsx.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm + $(IntDir)%(FileName).obj;%(Outputs) /coff /Zi @@ -569,44 +545,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/build/vs2010/tbbmalloc.vcxproj b/build/vs2010/tbbmalloc.vcxproj index ad9a793d38..e228346d60 100644 --- a/build/vs2010/tbbmalloc.vcxproj +++ b/build/vs2010/tbbmalloc.vcxproj @@ -107,29 +107,29 @@ <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false AllRules.ruleset @@ -167,14 +167,11 @@ .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) true - - Default MultiThreadedDebugDLL - - Level4 ProgramDatabase + false /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -196,17 +193,13 @@ Disabled .;%(AdditionalIncludeDirectories) false - - Default MultiThreadedDebugDLL - false true - - Level4 ProgramDatabase false + false /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -224,13 +217,10 @@ /c /MD /O2 /Zi /EHs- /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /volatile:iso /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I. .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) - - MultiThreadedDLL - - Level4 ProgramDatabase + false /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -253,14 +243,10 @@ /c /MD /O2 /Zi /EHs- /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /volatile:iso /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I. .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) - - MultiThreadedDLL - false - - Level4 ProgramDatabase + false /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -282,14 +268,11 @@ .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) true - - Default MultiThreadedDebug - - Level4 ProgramDatabase + false /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -311,17 +294,13 @@ Disabled .;%(AdditionalIncludeDirectories) false - - Default MultiThreadedDebug - false true - - Level4 ProgramDatabase false + false /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -339,13 +318,10 @@ /c /MT /O2 /Zi /EHs- /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /volatile:iso /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I. .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) - - MultiThreaded - - Level4 ProgramDatabase + false /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -355,8 +331,6 @@ true true false - - MachineX86 @@ -368,14 +342,10 @@ /c /MT /O2 /Zi /EHs- /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /volatile:iso /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I. .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) - - MultiThreaded - false - - Level4 ProgramDatabase + false /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -394,24 +364,20 @@ true building atomic_support.obj - ml64 /Fo"intel64\Debug-MT\atomic_support.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Debug-MT\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) true building atomic_support.obj - ml64 /Fo"intel64\Debug\atomic_support.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Debug\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) true building atomic_support.obj - ml64 /Fo"intel64\Release-MT\atomic_support.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Release-MT\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) true building atomic_support.obj - ml64 /Fo"intel64\Release\atomic_support.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Release\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) @@ -493,13 +459,7 @@ - - - - - - - + diff --git a/build/vs2010/tbbmalloc_proxy.vcxproj b/build/vs2010/tbbmalloc_proxy.vcxproj index 6462df2cf5..4cc792461b 100644 --- a/build/vs2010/tbbmalloc_proxy.vcxproj +++ b/build/vs2010/tbbmalloc_proxy.vcxproj @@ -107,29 +107,29 @@ <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false AllRules.ruleset @@ -199,7 +199,6 @@ Default MultiThreadedDebugDLL - false true @@ -255,7 +254,6 @@ MultiThreadedDLL - false Level4 @@ -313,7 +311,6 @@ Default MultiThreadedDebug - false true @@ -369,7 +366,6 @@ MultiThreaded - false Level4 @@ -405,9 +401,7 @@ /I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions) /I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions) - - - + {b15f131e-328a-4d42-adc2-9ff4ca6306d8} diff --git a/build/windows.cl.inc b/build/windows.cl.inc index aebc0b5ebd..1e3eb8f138 100644 --- a/build/windows.cl.inc +++ b/build/windows.cl.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/windows.gcc.inc b/build/windows.gcc.inc index 2a6d0006d0..d6ffbab226 100644 --- a/build/windows.gcc.inc +++ b/build/windows.gcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/windows.icl.inc b/build/windows.icl.inc index 687516860e..4c6616f573 100644 --- a/build/windows.icl.inc +++ b/build/windows.icl.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/windows.inc b/build/windows.inc index 0ada045e16..7cdb51ffa9 100644 --- a/build/windows.inc +++ b/build/windows.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/xbox360.cl.inc b/build/xbox360.cl.inc index 8cd0bc1161..34d3cde337 100644 --- a/build/xbox360.cl.inc +++ b/build/xbox360.cl.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/xbox360.inc b/build/xbox360.inc index f3573d6072..a995d3da29 100644 --- a/build/xbox360.inc +++ b/build/xbox360.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/doc/Release_Notes.txt b/doc/Release_Notes.txt index 6a47fa0bc9..6046ca4bbd 100644 --- a/doc/Release_Notes.txt +++ b/doc/Release_Notes.txt @@ -83,6 +83,11 @@ Software - Supported Compilers starting from gcc 4.1 and higher Xcode* 6.3 and higher and command line tools (OS X* only) +Software - Supported Performance Analysis Tools + + Intel(R) VTune(TM) Amplifier XE 2015 and higher. + Intel(R) Inspector XE 2015 and higher. + Intel(R) Advisor XE 2015 and higher. Known Issues ------------ @@ -162,14 +167,8 @@ Library Issues 4.8.2, and 4.9.2), the destructor of a task_group might not throw missing_wait exception. - - On OS X* 10.11 some examples might fail to run via makefiles in - case System Integrity Protection is enabled. In such case - instead of `make ` use the following command: - `run_cmd="DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH" make ` - or run executables directly. - ------------------------------------------------------------------------ -Copyright (C) 2005-2015 Intel Corporation. All Rights Reserved. +Copyright (C) 2005-2016 Intel Corporation. All Rights Reserved. Intel, Xeon and Pentium are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/doc/html/a00001.html b/doc/html/a00001.html index 5d398fdd2c..c8a55e11bc 100644 --- a/doc/html/a00001.html +++ b/doc/html/a00001.html @@ -50,7 +50,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00002.html b/doc/html/a00002.html index adfece929a..47645d204a 100644 --- a/doc/html/a00002.html +++ b/doc/html/a00002.html @@ -36,7 +36,7 @@

Class Body implementing the concept of parallel_do body must define:

    -
  • B::operator()(
    +
  • B::operator()(
    cv_item_type item,
    parallel_do_feeder<item_type>& feeder
    ) const
    @@ -53,7 +53,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00003.html b/doc/html/a00003.html index fec1b11faf..4025768fb3 100644 --- a/doc/html/a00003.html +++ b/doc/html/a00003.html @@ -46,7 +46,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00004.html b/doc/html/a00004.html index 7f94ce5b1b..a80516ea25 100644 --- a/doc/html/a00004.html +++ b/doc/html/a00004.html @@ -48,7 +48,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00005.html b/doc/html/a00005.html index d538b45c62..3ee7b7d957 100644 --- a/doc/html/a00005.html +++ b/doc/html/a00005.html @@ -34,7 +34,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00006.html b/doc/html/a00006.html index 4033ce6703..98accfead7 100644 --- a/doc/html/a00006.html +++ b/doc/html/a00006.html @@ -50,7 +50,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00007.html b/doc/html/a00007.html index 243601c3a6..d21f12c870 100644 --- a/doc/html/a00007.html +++ b/doc/html/a00007.html @@ -34,17 +34,17 @@
Requirements on iterators for parallel_sort
-

Requirements on value type T of RandomAccessIterator for parallel_sort:

+

Requirements on the iterator type It and its value type T for parallel_sort:

    -
  • void swap( T& x, T& y )
    -
    Swaps x and y
  • +
  • void iter_swap( It a, It b )
    +
    Swaps the values of the elements the given iterators a and b are pointing to. It should be a random access iterator.
  • bool Compare::operator()( const T& x, const T& y )
    True if x comes before y;

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00008.html b/doc/html/a00008.html index 14967095dd..8ddc66168a 100644 --- a/doc/html/a00008.html +++ b/doc/html/a00008.html @@ -48,7 +48,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00009.html b/doc/html/a00009.html index 19f5f52434..6cb5656496 100644 --- a/doc/html/a00009.html +++ b/doc/html/a00009.html @@ -34,7 +34,7 @@
__TBB_malloc_proxy_caller Struct Reference
@@ -45,7 +45,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00010.html b/doc/html/a00010.html index 547432d53d..c385f03799 100644 --- a/doc/html/a00010.html +++ b/doc/html/a00010.html @@ -33,14 +33,14 @@
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor Class Reference
@@ -56,7 +56,7 @@
-tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
@@ -67,12 +67,12 @@ concurrent_hash_map::value_type  - - + - - +concurrent_hash_map::value_type  + +
value_type
 Type of value.
 
- Public Types inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
+
- Public Types inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
typedef const
-concurrent_hash_map::value_type 
value_type
 Type of value.
 
value_type
 Type of value.
 
@@ -84,45 +84,45 @@ pointer  - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + +

Public Member Functions

operator-> () const
 Return pointer to associated value in hash table.
 
- Public Member Functions inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
-bool empty () const
 True if result is empty.
 
-void release ()
 Set to null.
 
-const_reference operator* () const
 Return reference to associated value in hash table.
 
-const_pointer operator-> () const
 Return pointer to associated value in hash table.
 
const_accessor ()
 Create empty result.
 
~const_accessor ()
 Destroy result after releasing the underlying reference.
 
- Public Member Functions inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
+bool empty () const
 True if result is empty.
 
+void release ()
 Set to null.
 
+const_reference operator* () const
 Return reference to associated value in hash table.
 
+const_pointer operator-> () const
 Return pointer to associated value in hash table.
 
const_accessor ()
 Create empty result.
 
~const_accessor ()
 Destroy result after releasing the underlying reference.
 
- - + - - - - - + + + + - +

Additional Inherited Members

- Protected Member Functions inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
+
- Protected Member Functions inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
bool is_writer ()
 
- Protected Attributes inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
-nodemy_node
 
+
 
- Protected Attributes inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
+nodemy_node
 
hashcode_t my_hash
 
 

Detailed Description

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
@@ -135,7 +135,7 @@


-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00011.html b/doc/html/a00011.html index df96603c15..b53b337c25 100644 --- a/doc/html/a00011.html +++ b/doc/html/a00011.html @@ -33,13 +33,13 @@
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used Struct Reference
@@ -57,7 +57,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00012.html b/doc/html/a00012.html index e3c0ad23f5..0dd3102e93 100644 --- a/doc/html/a00012.html +++ b/doc/html/a00012.html @@ -33,13 +33,13 @@
tbb::interface6::aggregator Class Reference
@@ -70,7 +70,7 @@ Additional Inherited Members - Private Member Functions inherited from tbb::interface6::aggregator_ext< internal::basic_handler > aggregator_ext (const internal::basic_handler &h) + aggregator_ext (const internal::basic_handler &h)   void process (aggregator_operation *op)  EXPERT INTERFACE: Enter a user-made operation into the aggregator's mailbox. More...
@@ -116,7 +116,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00013.html b/doc/html/a00013.html index e039fd3f6d..4517ac9ebc 100644 --- a/doc/html/a00013.html +++ b/doc/html/a00013.html @@ -33,14 +33,14 @@
tbb::interface6::aggregator_ext< handler_type > Class Template Reference
@@ -142,7 +142,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00014.html b/doc/html/a00014.html index f9b945c914..692d1326f5 100644 --- a/doc/html/a00014.html +++ b/doc/html/a00014.html @@ -33,7 +33,7 @@ +List of all members
tbb::interface6::aggregator_operation Class Reference
@@ -52,8 +52,8 @@
-tbb::interface6::internal::basic_operation_base -tbb::interface6::internal::basic_operation< Body > +tbb::interface6::internal::basic_operation_base +tbb::interface6::internal::basic_operation< Body >
@@ -120,7 +120,7 @@

Member Function Documentation


-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00015.html b/doc/html/a00015.html index 6f33cfd437..9f18e08597 100644 --- a/doc/html/a00015.html +++ b/doc/html/a00015.html @@ -33,15 +33,15 @@
-
tbb::aligned_space< T, N > Class Template Reference
+
tbb::aligned_space< T, N > Class Template Reference
@@ -73,7 +73,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00016.html b/doc/html/a00016.html index 258670d2e2..bfc3f7bde4 100644 --- a/doc/html/a00016.html +++ b/doc/html/a00016.html @@ -33,13 +33,13 @@
tbb::flow::interface8::allocate_buffer< T > Struct Template Reference
@@ -52,12 +52,12 @@
 

The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00017.html b/doc/html/a00017.html index a4b763c755..f96380f131 100644 --- a/doc/html/a00017.html +++ b/doc/html/a00017.html @@ -33,13 +33,13 @@
tbb::flow::interface8::allocate_buffer< queueing > Struct Template Reference
@@ -52,12 +52,12 @@  
The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00018.html b/doc/html/a00018.html index 0bc4673b6f..82a4dea992 100644 --- a/doc/html/a00018.html +++ b/doc/html/a00018.html @@ -33,14 +33,14 @@
tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body > Class Template Reference
@@ -71,12 +71,12 @@  
The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00019.html b/doc/html/a00019.html index 7539af683b..cbc4a7c6a5 100644 --- a/doc/html/a00019.html +++ b/doc/html/a00019.html @@ -33,14 +33,14 @@
tbb::flow::interface8::internal::async_gateway< Output > Class Template Referenceabstract
@@ -87,12 +87,12 @@

Pure virtual template class that defines interface for async communication.


The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00020.html b/doc/html/a00020.html index 2e6536388b..1fabe6b536 100644 --- a/doc/html/a00020.html +++ b/doc/html/a00020.html @@ -33,7 +33,7 @@ +List of all members
tbb::flow::interface8::async_node< Input, Output, Policy, Allocator > Class Template Reference
@@ -59,16 +59,16 @@
-tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator > +tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator > tbb::flow::interface8::internal::async_gateway< Output > -tbb::flow::interface8::sender< Output > -tbb::flow::interface8::graph_node +tbb::flow::interface8::sender< Output > +tbb::flow::interface8::graph_node
- +

Classes

struct  try_put_functor
struct  try_put_functor
 
+typedef sender< input_type >  +typedef receiver< output_type >  +internal::edge_container
+< successor_type >  - - + - - - - + + + - - + - - + - + - - - - - - - - + + + + + + + - - - + + + - +

@@ -80,10 +80,10 @@ typedef Output 

output_type
 
-typedef sender< input_type > predecessor_type
predecessor_type
 
-typedef receiver< output_type > successor_type
successor_type
 
typedef
@@ -92,68 +92,68 @@
 
typedef
-internal::edge_container
-< successor_type
built_successors_type
built_successors_type
 interface to record edges for traversal & deletion
 
typedef
built_successors_type::edge_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
+
- Public Types inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
typedef Input input_type
 
-typedef null_type output_type
 
+
 
+typedef null_type output_type
 
typedef
internal::wrap_tuple_elements
< N,
internal::multifunction_output,
tuple< Output > >::type 
output_ports_type
 
+
 
typedef
internal::multifunction_input
< input_type,
output_ports_type, Allocator > 
fInput_type
 
+
 
typedef
internal::function_input_queue
< input_type, Allocator > 
input_queue_type
 
 
- Public Types inherited from tbb::flow::interface8::internal::async_gateway< Output >
typedef Output output_type
 
- Public Types inherited from tbb::flow::interface8::sender< Output >
-typedef Output output_type
 The output type of this sender.
 
-typedef receiver< Output > successor_type
 The successor type for this node.
 
+
- Public Types inherited from tbb::flow::interface8::sender< Output >
+typedef Output output_type
 The output type of this sender.
 
+typedef receiver< Output > successor_type
 The successor type for this node.
 
typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
typedef
built_successors_type::edge_list_type 
successor_list_type
 
 
- + @@ -177,11 +177,11 @@ void  +bool  +bool  +void  +void  @@ -203,59 +203,59 @@ - - - - - - + + + + + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

template<typename Body >
 async_node (graph &g, size_t concurrency, Body body)
 async_node (graph &g, size_t concurrency, Body body)
 
 async_node (const async_node &other)
set_name (const char *name)
 
-bool register_successor (successor_type &r)
register_successor (successor_type &r)
 Add a new successor to this node.
 
-bool remove_successor (successor_type &r)
remove_successor (successor_type &r)
 Removes a successor from this node.
 
@@ -192,10 +192,10 @@ built_successors_typebuilt_successors ()
 
-void internal_add_built_successor (successor_type &r)
internal_add_built_successor (successor_type &r)
 
-void internal_delete_built_successor (successor_type &r)
internal_delete_built_successor (successor_type &r)
 
void copy_successors (successor_list_type &l)
size_t successor_count ()
 
- Public Member Functions inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
multifunction_node (graph &g, size_t concurrency, Body body)
 
multifunction_node (const multifunction_node &other)
 
+
- Public Member Functions inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
multifunction_node (graph &g, size_t concurrency, Body body)
 
multifunction_node (const multifunction_node &other)
 
void set_name (const char *name)
 
+
 
void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::sender< Output >
-virtual bool register_successor (successor_type &r)=0
 Add a new successor to this node.
 
-virtual bool remove_successor (successor_type &r)=0
 Removes a successor from this node.
 
-virtual bool try_get (Output &)
 Request an item from the sender.
 
-virtual bool try_reserve (Output &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
-virtual void internal_add_built_successor (successor_type &)=0
 
-virtual void internal_delete_built_successor (successor_type &)=0
 
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::sender< Output >
+virtual bool register_successor (successor_type &r)=0
 Add a new successor to this node.
 
+virtual bool remove_successor (successor_type &r)=0
 Removes a successor from this node.
 
+virtual bool try_get (Output &)
 Request an item from the sender.
 
+virtual bool try_reserve (Output &)
 Reserves an item in the sender.
 
+virtual bool try_release ()
 Releases the reserved item.
 
+virtual bool try_consume ()
 Consumes the reserved item.
 
+virtual void internal_add_built_successor (successor_type &)=0
 
+virtual void internal_delete_built_successor (successor_type &)=0
 
@@ -272,27 +272,27 @@ - - + - +

Protected Types

-typedef multifunction_node
+typedef multifunction_node
< Input, tuple< Output >
, Policy, Allocator > 
base_type
 
void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
+
- Protected Member Functions inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
void reset_node (reset_flags f)
 
 
- - - - - - - - - + + + + + + + + - +

Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
- Static Protected Attributes inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
+
- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 
- Static Protected Attributes inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
static const int N
 
 

Detailed Description

template<typename Input, typename Output, typename Policy = queueing, typename Allocator = cache_aligned_allocator<Input>>
@@ -300,12 +300,12 @@

Implements async node.


The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00021.html b/doc/html/a00021.html index 7c70d4ae0d..b36dd1113a 100644 --- a/doc/html/a00021.html +++ b/doc/html/a00021.html @@ -33,15 +33,15 @@
-
tbb::atomic< T > Struct Template Reference
+
tbb::atomic< T > Struct Template Reference
@@ -82,7 +82,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00022.html b/doc/html/a00022.html index 6f498faec6..5e42342449 100644 --- a/doc/html/a00022.html +++ b/doc/html/a00022.html @@ -33,13 +33,13 @@
tbb::atomic< void * > Struct Template Reference
@@ -81,7 +81,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00023.html b/doc/html/a00023.html index ed3003905d..a66237a12f 100644 --- a/doc/html/a00023.html +++ b/doc/html/a00023.html @@ -4,7 +4,7 @@ -tbb::bad_last_alloc Class Reference +tbb::interface7::task_arena::attach Struct Reference @@ -33,46 +33,28 @@
-
-
tbb::bad_last_alloc Class Reference
+
tbb::interface7::task_arena::attach Struct Reference
-

Exception for concurrent containers. +

Tag class used to indicate the "attaching" constructor. More...

-

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::bad_last_alloc:
-
-
- - - -
- - - - -

-Public Member Functions

-const char * what () const throw ()
 
+

#include <task_arena.h>

Detailed Description

-

Exception for concurrent containers.

-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +

    Tag class used to indicate the "attaching" constructor.

    +

    The documentation for this struct was generated from the following file:
      +
    • task_arena.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00024.html b/doc/html/a00024.html index 1beaae1a92..ef3a285167 100644 --- a/doc/html/a00024.html +++ b/doc/html/a00024.html @@ -4,7 +4,7 @@ -tbb::interface6::internal::basic_handler Class Reference +tbb::bad_last_alloc Class Reference @@ -33,31 +33,46 @@
-
tbb::interface6::internal::basic_handler Class Reference
+
tbb::bad_last_alloc Class Reference
+ +

Exception for concurrent containers. + More...

+ +

#include <tbb_exception.h>

+
+Inheritance diagram for tbb::bad_last_alloc:
+
+
+ + + +
- - + +

Public Member Functions

-void operator() (aggregator_operation *op_list) const
 
+const char * what () const throw ()
 
-
The documentation for this class was generated from the following file:
    -
  • aggregator.h
  • +

    Detailed Description

    +

    Exception for concurrent containers.

    +

    The documentation for this class was generated from the following file:
      +
    • tbb_exception.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00023.png b/doc/html/a00024.png similarity index 100% rename from doc/html/a00023.png rename to doc/html/a00024.png diff --git a/doc/html/a00025.html b/doc/html/a00025.html index cca6e96805..c4035a06c0 100644 --- a/doc/html/a00025.html +++ b/doc/html/a00025.html @@ -4,7 +4,7 @@ -tbb::interface6::internal::basic_operation< Body > Class Template Reference +tbb::interface6::internal::basic_handler Class Reference @@ -33,41 +33,23 @@
-
tbb::interface6::internal::basic_operation< Body > Class Template Reference
+
tbb::interface6::internal::basic_handler Class Reference
-
-Inheritance diagram for tbb::interface6::internal::basic_operation< Body >:
-
-
- - -tbb::interface6::internal::basic_operation_base -tbb::interface6::aggregator_operation - -
- - -

Public Member Functions

basic_operation (const Body &b)
 
- - - - + +

-Additional Inherited Members

- Public Types inherited from tbb::interface6::aggregator_operation
enum  aggregator_operation_status { agg_waiting =0, -agg_finished - }
 
+void operator() (aggregator_operation *op_list) const
 

The documentation for this class was generated from the following file:
  • aggregator.h
  • @@ -75,7 +57,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00025.png b/doc/html/a00025.png deleted file mode 100644 index cadf33aedd..0000000000 Binary files a/doc/html/a00025.png and /dev/null differ diff --git a/doc/html/a00026.html b/doc/html/a00026.html index 60d6a926ef..0e35ed7f2c 100644 --- a/doc/html/a00026.html +++ b/doc/html/a00026.html @@ -4,7 +4,7 @@ -tbb::interface6::internal::basic_operation_base Class Reference +tbb::interface6::internal::basic_operation< Body > Class Template Reference @@ -33,33 +33,33 @@
-
tbb::interface6::internal::basic_operation_base Class Referenceabstract
+
tbb::interface6::internal::basic_operation< Body > Class Template Reference
-Inheritance diagram for tbb::interface6::internal::basic_operation_base:
+Inheritance diagram for tbb::interface6::internal::basic_operation< Body >:
- - + + +tbb::interface6::internal::basic_operation_base tbb::interface6::aggregator_operation -tbb::interface6::internal::basic_operation< Body >
- - - + + +

-Friends

-class basic_handler
 

+Public Member Functions

basic_operation (const Body &b)
 
@@ -68,20 +68,6 @@ agg_finished } - - - - - - - - - - -

Additional Inherited Members

 
- Public Member Functions inherited from tbb::interface6::aggregator_operation
-void start ()
 Call start before handling this operation.
 
void finish ()
 Call finish when done handling this operation. More...
 
-aggregator_operationnext ()
 
-void set_next (aggregator_operation *n)
 

The documentation for this class was generated from the following file:
  • aggregator.h
  • @@ -89,7 +75,7 @@

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00026.png b/doc/html/a00026.png index 0f94299e82..cadf33aedd 100644 Binary files a/doc/html/a00026.png and b/doc/html/a00026.png differ diff --git a/doc/html/a00027.html b/doc/html/a00027.html index 2d232f402c..f02ceda63b 100644 --- a/doc/html/a00027.html +++ b/doc/html/a00027.html @@ -4,7 +4,7 @@ -tbb::blocked_range< Value > Class Template Reference +tbb::interface6::internal::basic_operation_base Class Reference @@ -33,290 +33,63 @@
-
tbb::blocked_range< Value > Class Template Reference
+
tbb::interface6::internal::basic_operation_base Class Referenceabstract
- -

A range over which to iterate. - More...

- -

#include <blocked_range.h>

+
+Inheritance diagram for tbb::interface6::internal::basic_operation_base:
+
+
+ + +tbb::interface6::aggregator_operation +tbb::interface6::internal::basic_operation< Body > + +
- - - - - - - -

-Public Types

typedef Value const_iterator
 Type of a value. More...
 
-typedef std::size_t size_type
 Type for size of a range.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 blocked_range ()
 Construct range with default-constructed values for begin and end. More...
 
blocked_range (Value begin_, Value end_, size_type grainsize_=1)
 Construct range over half-open interval [begin,end), with the given grainsize.
 
-const_iterator begin () const
 Beginning of range.
 
-const_iterator end () const
 One past last value in range.
 
size_type size () const
 Size of the range. More...
 
-size_type grainsize () const
 The grain size for this range.
 
-bool empty () const
 True if range is empty.
 
bool is_divisible () const
 True if range is divisible. More...
 
 blocked_range (blocked_range &r, split)
 Split range. More...
 
 blocked_range (blocked_range &r, proportional_split &proportion)
 Split range. More...
 
- - - - -

-Static Public Attributes

-static const bool is_splittable_in_proportion = true
 Static field to support proportional split.
 
- - - - - - -

Friends

-template<typename RowValue , typename ColValue >
class blocked_range2d
 
-template<typename RowValue , typename ColValue , typename PageValue >
class blocked_range3d
 
-

Detailed Description

-

template<typename Value>
-class tbb::blocked_range< Value >

- -

A range over which to iterate.

-

Member Typedef Documentation

- -
-
-
-template<typename Value>
- - - - -
typedef Value tbb::blocked_range< Value >::const_iterator
-
- -

Type of a value.

-

Called a const_iterator for sake of algorithms that need to treat a blocked_range as an STL container.

- -
-
-

Constructor & Destructor Documentation

- -
-
-
-template<typename Value>
- - - - - -
- - - - - - - -
tbb::blocked_range< Value >::blocked_range ()
-
-inline
-
- -

Construct range with default-constructed values for begin and end.

-

Requires that Value have a default constructor.

- -
-
- -
-
-
-template<typename Value>
- - - - - -
- - - - - - - - - - - - - - - - - - -
tbb::blocked_range< Value >::blocked_range (blocked_range< Value > & r,
split  
)
-
-inline
-
- -

Split range.

-

The new Range *this has the second part, the old range r has the first part. Unspecified if end()<begin() or !is_divisible().

- -
-
- -
-
-
-template<typename Value>
- - - - - -
- - - - - - - - - - - - - - - - - - -
tbb::blocked_range< Value >::blocked_range (blocked_range< Value > & r,
proportional_split & proportion 
)
-
-inline
-
- -

Split range.

-

The new Range *this has the second part split according to specified proportion, the old range r has the first part. Unspecified if end()<begin() or !is_divisible().

- -
-
-

Member Function Documentation

- -
-
-
-template<typename Value>
- - - - - -
- - - - - - - -
bool tbb::blocked_range< Value >::is_divisible () const
-
-inline
-
-
- -
-
-
-template<typename Value>
- - - - - + + +
- - - - - - - -
size_type tbb::blocked_range< Value >::size () const
-
-inline
+class basic_handler
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from tbb::interface6::aggregator_operation
enum  aggregator_operation_status { agg_waiting =0, +agg_finished + }
 
- Public Member Functions inherited from tbb::interface6::aggregator_operation
+void start ()
 Call start before handling this operation.
 
void finish ()
 Call finish when done handling this operation. More...
 
+aggregator_operationnext ()
 
+void set_next (aggregator_operation *n)
 
-
- -

Size of the range.

-

Unspecified if end()<begin().

- -

Referenced by tbb::blocked_range< I >::is_divisible().

- -
-

The documentation for this class was generated from the following file:
    -
  • blocked_range.h
  • +
  • aggregator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00027.png b/doc/html/a00027.png new file mode 100644 index 0000000000..0f94299e82 Binary files /dev/null and b/doc/html/a00027.png differ diff --git a/doc/html/a00028.html b/doc/html/a00028.html index fc3e5a0231..30c15dcd8f 100644 --- a/doc/html/a00028.html +++ b/doc/html/a00028.html @@ -4,7 +4,7 @@ -tbb::blocked_range2d< RowValue, ColValue > Class Template Reference +tbb::blocked_range< Value > Class Template Reference @@ -33,7 +33,7 @@ +Friends | +List of all members
-
tbb::blocked_range2d< RowValue, ColValue > Class Template Reference
+
tbb::blocked_range< Value > Class Template Reference
-

A 2-dimensional range that models the Range concept. +

A range over which to iterate. More...

-

#include <blocked_range2d.h>

+

#include <blocked_range.h>

- - - - - + + + + + +

Public Types

-typedef blocked_range< RowValue > row_range_type
 Type for size of an iteration range.
 
-typedef blocked_range< ColValue > col_range_type
 
typedef Value const_iterator
 Type of a value. More...
 
+typedef std::size_t size_type
 Type for size of a range.
 
- - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

blocked_range2d (RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize)
 
blocked_range2d (RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)
 
-bool empty () const
 True if range is empty.
 
-bool is_divisible () const
 True if range is divisible into two pieces.
 
blocked_range2d (blocked_range2d &r, split)
 
blocked_range2d (blocked_range2d &r, proportional_split &proportion)
 
-template<typename Split >
void do_split (blocked_range2d &r, Split &split_obj)
 
-const row_range_typerows () const
 The rows of the iteration space.
 
-const col_range_typecols () const
 The columns of the iteration space.
 
 blocked_range ()
 Construct range with default-constructed values for begin and end. More...
 
blocked_range (Value begin_, Value end_, size_type grainsize_=1)
 Construct range over half-open interval [begin,end), with the given grainsize.
 
+const_iterator begin () const
 Beginning of range.
 
+const_iterator end () const
 One past last value in range.
 
size_type size () const
 Size of the range. More...
 
+size_type grainsize () const
 The grain size for this range.
 
+bool empty () const
 True if range is empty.
 
bool is_divisible () const
 True if range is divisible. More...
 
 blocked_range (blocked_range &r, split)
 Split range. More...
 
 blocked_range (blocked_range &r, proportional_split &proportion)
 Split range. More...
 
- - - + + + +

Static Public Attributes

-static const bool is_splittable_in_proportion = true
 Static field to support proportional split.
 
+static const bool is_splittable_in_proportion = true
 Static field to support proportional split.
 
+ + + + + + +

+Friends

+template<typename RowValue , typename ColValue >
class blocked_range2d
 
+template<typename RowValue , typename ColValue , typename PageValue >
class blocked_range3d
 

Detailed Description

-

template<typename RowValue, typename ColValue = RowValue>
-class tbb::blocked_range2d< RowValue, ColValue >

+

template<typename Value>
+class tbb::blocked_range< Value >

+ +

A range over which to iterate.

+

Member Typedef Documentation

+ +
+
+
+template<typename Value>
+ + + + +
typedef Value tbb::blocked_range< Value >::const_iterator
+
+ +

Type of a value.

+

Called a const_iterator for sake of algorithms that need to treat a blocked_range as an STL container.

+ +
+
+

Constructor & Destructor Documentation

+ +
+
+
+template<typename Value>
+ + + + + +
+ + + + + + + +
tbb::blocked_range< Value >::blocked_range ()
+
+inline
+
+ +

Construct range with default-constructed values for begin and end.

+

Requires that Value have a default constructor.

+ +
+
+ +
+
+
+template<typename Value>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
tbb::blocked_range< Value >::blocked_range (blocked_range< Value > & r,
split  
)
+
+inline
+
+ +

Split range.

+

The new Range *this has the second part, the old range r has the first part. Unspecified if end()<begin() or !is_divisible().

+ +
+
+ +
+
+
+template<typename Value>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
tbb::blocked_range< Value >::blocked_range (blocked_range< Value > & r,
proportional_split & proportion 
)
+
+inline
+
+ +

Split range.

+

The new Range *this has the second part split according to specified proportion, the old range r has the first part. Unspecified if end()<begin() or !is_divisible().

+ +
+
+

Member Function Documentation

+ +
+
+
+template<typename Value>
+ + + + + +
+ + + + + + + +
bool tbb::blocked_range< Value >::is_divisible () const
+
+inline
+
+ +

True if range is divisible.

+

Unspecified if end()<begin().

+ +

Referenced by tbb::blocked_range2d< RowValue, ColValue >::is_divisible(), and tbb::blocked_range3d< PageValue, RowValue, ColValue >::is_divisible().

-

A 2-dimensional range that models the Range concept.

-

The documentation for this class was generated from the following file:
    -
  • blocked_range2d.h
  • +
+
+ +
+
+
+template<typename Value>
+ + + + + +
+ + + + + + + +
size_type tbb::blocked_range< Value >::size () const
+
+inline
+
+ +

Size of the range.

+

Unspecified if end()<begin().

+ +

Referenced by tbb::blocked_range< I >::is_divisible().

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • blocked_range.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00029.html b/doc/html/a00029.html index 3feaee30d7..ba27cca35e 100644 --- a/doc/html/a00029.html +++ b/doc/html/a00029.html @@ -4,7 +4,7 @@ -tbb::blocked_range3d< PageValue, RowValue, ColValue > Class Template Reference +tbb::blocked_range2d< RowValue, ColValue > Class Template Reference @@ -33,7 +33,7 @@ +List of all members
-
tbb::blocked_range3d< PageValue, RowValue, ColValue > Class Template Reference
+
tbb::blocked_range2d< RowValue, ColValue > Class Template Reference
-

A 3-dimensional range that models the Range concept. +

A 2-dimensional range that models the Range concept. More...

-

#include <blocked_range3d.h>

+

#include <blocked_range2d.h>

- - - - - - - + + + + +

Public Types

-typedef blocked_range< PageValue > page_range_type
 Type for size of an iteration range.
 
-typedef blocked_range< RowValue > row_range_type
 
-typedef blocked_range< ColValue > col_range_type
 
+typedef blocked_range< RowValue > row_range_type
 Type for size of an iteration range.
 
+typedef blocked_range< ColValue > col_range_type
 
- - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + +

Public Member Functions

blocked_range3d (PageValue page_begin, PageValue page_end, RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)
 
blocked_range3d (PageValue page_begin, PageValue page_end, typename page_range_type::size_type page_grainsize, RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize)
 
-bool empty () const
 True if range is empty.
 
-bool is_divisible () const
 True if range is divisible into two pieces.
 
blocked_range3d (blocked_range3d &r, split)
 
blocked_range3d (blocked_range3d &r, proportional_split &proportion)
 
+
blocked_range2d (RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize)
 
blocked_range2d (RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)
 
+bool empty () const
 True if range is empty.
 
+bool is_divisible () const
 True if range is divisible into two pieces.
 
blocked_range2d (blocked_range2d &r, split)
 
blocked_range2d (blocked_range2d &r, proportional_split &proportion)
 
template<typename Split >
void do_split (blocked_range3d &r, Split &split_obj)
 
-const page_range_typepages () const
 The pages of the iteration space.
 
-const row_range_typerows () const
 The rows of the iteration space.
 
-const col_range_typecols () const
 The columns of the iteration space.
 
void do_split (blocked_range2d &r, Split &split_obj)
 
+const row_range_typerows () const
 The rows of the iteration space.
 
+const col_range_typecols () const
 The columns of the iteration space.
 
- - - + + +

Static Public Attributes

-static const bool is_splittable_in_proportion = true
 Static field to support proportional split.
 
+static const bool is_splittable_in_proportion = true
 Static field to support proportional split.
 

Detailed Description

-

template<typename PageValue, typename RowValue = PageValue, typename ColValue = RowValue>
-class tbb::blocked_range3d< PageValue, RowValue, ColValue >

+

template<typename RowValue, typename ColValue = RowValue>
+class tbb::blocked_range2d< RowValue, ColValue >

-

A 3-dimensional range that models the Range concept.

+

A 2-dimensional range that models the Range concept.


The documentation for this class was generated from the following file:
    -
  • blocked_range3d.h
  • +
  • blocked_range2d.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00030.html b/doc/html/a00030.html index 0417c2c4df..50813bdf44 100644 --- a/doc/html/a00030.html +++ b/doc/html/a00030.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::internal::broadcast_cache< T, M > Class Template Reference +tbb::blocked_range3d< PageValue, RowValue, ColValue > Class Template Reference @@ -33,21 +33,96 @@
+
-
tbb::flow::interface8::internal::broadcast_cache< T, M > Class Template Reference
+
tbb::blocked_range3d< PageValue, RowValue, ColValue > Class Template Reference
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • + +

    A 3-dimensional range that models the Range concept. + More...

    + +

    #include <blocked_range3d.h>

    + + + + + + + + + +

    +Public Types

    +typedef blocked_range< PageValue > page_range_type
     Type for size of an iteration range.
     
    +typedef blocked_range< RowValue > row_range_type
     
    +typedef blocked_range< ColValue > col_range_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    blocked_range3d (PageValue page_begin, PageValue page_end, RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)
     
    blocked_range3d (PageValue page_begin, PageValue page_end, typename page_range_type::size_type page_grainsize, RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize)
     
    +bool empty () const
     True if range is empty.
     
    +bool is_divisible () const
     True if range is divisible into two pieces.
     
    blocked_range3d (blocked_range3d &r, split)
     
    blocked_range3d (blocked_range3d &r, proportional_split &proportion)
     
    +template<typename Split >
    void do_split (blocked_range3d &r, Split &split_obj)
     
    +const page_range_typepages () const
     The pages of the iteration space.
     
    +const row_range_typerows () const
     The rows of the iteration space.
     
    +const col_range_typecols () const
     The columns of the iteration space.
     
    + + + + +

    +Static Public Attributes

    +static const bool is_splittable_in_proportion = true
     Static field to support proportional split.
     
    +

    Detailed Description

    +

    template<typename PageValue, typename RowValue = PageValue, typename ColValue = RowValue>
    +class tbb::blocked_range3d< PageValue, RowValue, ColValue >

    + +

    A 3-dimensional range that models the Range concept.

    +

    The documentation for this class was generated from the following file:
      +
    • blocked_range3d.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00031.html b/doc/html/a00031.html index 1b6d0ddc13..ebfaeb5c8c 100644 --- a/doc/html/a00031.html +++ b/doc/html/a00031.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::broadcast_node< T > Class Template Reference +tbb::flow::interface8::internal::broadcast_cache< T, M > Class Template Reference @@ -33,256 +33,21 @@
-
-
tbb::flow::interface8::broadcast_node< T > Class Template Reference
+
tbb::flow::interface8::internal::broadcast_cache< T, M > Class Template Reference
- -

Forwards messages of type T to all successors. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::broadcast_node< T >:
-
-
- - -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
-typedef sender< T >
-::built_successors_type 
built_successors_type
 
-typedef receiver< T >
-::built_predecessors_type 
built_predecessors_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

broadcast_node (graph &g)
 
broadcast_node (const broadcast_node &src)
 
-void set_name (const char *name)
 
-virtual bool register_successor (receiver< T > &r)
 Adds a successor.
 
-virtual bool remove_successor (receiver< T > &r)
 Removes s as a successor.
 
-built_successors_typebuilt_successors ()
 
-void internal_add_built_successor (successor_type &r)
 
-void internal_delete_built_successor (successor_type &r)
 
-size_t successor_count ()
 
-void copy_successors (successor_list_type &v)
 
-built_predecessors_typebuilt_predecessors ()
 
-void internal_add_built_predecessor (predecessor_type &p)
 
-void internal_delete_built_predecessor (predecessor_type &p)
 
-size_t predecessor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
-virtual bool try_get (T &)
 Request an item from the sender.
 
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
- - - - - - - - - - - -

-Protected Member Functions

-task * try_put_task (const T &t)
 build a task to run the successor if possible. Default is old behavior.
 
-void reset_receiver (reset_flags)
 
-void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - -

-Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
-

Detailed Description

-

template<typename T>
-class tbb::flow::interface8::broadcast_node< T >

- -

Forwards messages of type T to all successors.

-

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00031.png b/doc/html/a00031.png deleted file mode 100644 index a7f7e8e615..0000000000 Binary files a/doc/html/a00031.png and /dev/null differ diff --git a/doc/html/a00032.html b/doc/html/a00032.html index ae6ac2507c..007d9c5f71 100644 --- a/doc/html/a00032.html +++ b/doc/html/a00032.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference +tbb::flow::interface8::broadcast_node< T > Class Template Reference @@ -33,61 +33,256 @@
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference
+
tbb::flow::interface8::broadcast_node< T > Class Template Reference
-

bucket accessor is to find, rehash, acquire a lock, and access a bucket +

Forwards messages of type T to all successors. More...

-

#include <concurrent_hash_map.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor:
+Inheritance diagram for tbb::flow::interface8::broadcast_node< T >:
- - + + +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
+typedef sender< T >
+::built_successors_type 
built_successors_type
 
+typedef receiver< T >
+::built_predecessors_type 
built_predecessors_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

bucket_accessor (concurrent_hash_map *base, const hashcode_t h, bool writer=false)
 
-void acquire (concurrent_hash_map *base, const hashcode_t h, bool writer=false)
 find a bucket by masked hashcode, optionally rehash, and acquire the lock
 
-bool is_writer ()
 check whether bucket is locked for write
 
-bucket * operator() ()
 get bucket pointer
 
broadcast_node (graph &g)
 
broadcast_node (const broadcast_node &src)
 
+void set_name (const char *name)
 
+virtual bool register_successor (receiver< T > &r)
 Adds a successor.
 
+virtual bool remove_successor (receiver< T > &r)
 Removes s as a successor.
 
+built_successors_typebuilt_successors ()
 
+void internal_add_built_successor (successor_type &r)
 
+void internal_delete_built_successor (successor_type &r)
 
+size_t successor_count ()
 
+void copy_successors (successor_list_type &v)
 
+built_predecessors_typebuilt_predecessors ()
 
+void internal_add_built_predecessor (predecessor_type &p)
 
+void internal_delete_built_predecessor (predecessor_type &p)
 
+size_t predecessor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
+virtual bool try_get (T &)
 Request an item from the sender.
 
+virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
+virtual bool try_release ()
 Releases the reserved item.
 
+virtual bool try_consume ()
 Consumes the reserved item.
 
+ + + + + + + + + + + +

+Protected Member Functions

+task * try_put_task (const T &t)
 build a task to run the successor if possible. Default is old behavior.
 
+void reset_receiver (reset_flags)
 
+void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual bool is_continue_receiver ()
 
+ + + + + + + + + + +

+Friends

+template<typename R , typename B >
class run_and_put_task
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
+ + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

Detailed Description

-

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor

+

template<typename T>
+class tbb::flow::interface8::broadcast_node< T >

-

bucket accessor is to find, rehash, acquire a lock, and access a bucket

+

Forwards messages of type T to all successors.


The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00032.png b/doc/html/a00032.png index 9dea0c02f2..a7f7e8e615 100644 Binary files a/doc/html/a00032.png and b/doc/html/a00032.png differ diff --git a/doc/html/a00033.html b/doc/html/a00033.html index 4fc3c4c4d1..55c87b6b0e 100644 --- a/doc/html/a00033.html +++ b/doc/html/a00033.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::buffer_node< T, A > Class Template Reference +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference @@ -33,579 +33,61 @@
-
tbb::flow::interface8::buffer_node< T, A > Class Template Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference
-

Forwards messages in arbitrary order. +

bucket accessor is to find, rehash, acquire a lock, and access a bucket More...

-

#include <flow_graph.h>

+

#include <concurrent_hash_map.h>

-Inheritance diagram for tbb::flow::interface8::buffer_node< T, A >:
+Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor:
- - -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > -tbb::flow::interface8::priority_queue_node< T, Compare, A > -tbb::flow::interface8::queue_node< T, A > -tbb::flow::interface8::sequencer_node< T, A > + +
- - - -

-Classes

class  buffer_operation
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef buffer_node< T, A > class_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
-void internal_add_built_successor (successor_type &r)
 
-void internal_delete_built_successor (successor_type &r)
 
-void internal_add_built_predecessor (predecessor_type &p)
 
-void internal_delete_built_predecessor (predecessor_type &p)
 
-size_t predecessor_count ()
 
-size_t successor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- - - - - - - - - - - - - -

-Protected Types

enum  op_type {
-  reg_succ, -rem_succ, -req_item, -res_item, -
-  rel_res, -con_res, -put_item, -try_fwd_task, -
-  add_blt_succ, -del_blt_succ, -add_blt_pred, -del_blt_pred, -
-  blt_succ_cnt, -blt_pred_cnt, -blt_succ_cpy, -blt_pred_cpy -
- }
 
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef size_t size_type
 
-typedef
-internal::aggregating_functor
-< class_type, buffer_operation
handler_type
 
-typedef sender< T >
-::built_successors_type 
built_successors_type
 
-typedef receiver< T >
-::built_predecessors_type 
built_predecessors_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

-virtual void handle_operations (buffer_operation *op_list)
 
-task * grab_forwarding_task (buffer_operation &op_data)
 
-bool enqueue_forwarding_task (buffer_operation &op_data)
 
-virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
-virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
-virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
-built_successors_typebuilt_successors ()
 
-virtual void internal_add_built_succ (buffer_operation *op)
 
-virtual void internal_del_built_succ (buffer_operation *op)
 
-built_predecessors_typebuilt_predecessors ()
 
-virtual void internal_add_built_pred (buffer_operation *op)
 
-virtual void internal_del_built_pred (buffer_operation *op)
 
-virtual void internal_succ_cnt (buffer_operation *op)
 
-virtual void internal_pred_cnt (buffer_operation *op)
 
-virtual void internal_copy_succs (buffer_operation *op)
 
-virtual void internal_copy_preds (buffer_operation *op)
 
-virtual void internal_forward_task (buffer_operation *op)
 Tries to forward valid items to successors.
 
-virtual void internal_push (buffer_operation *op)
 
-virtual void internal_pop (buffer_operation *op)
 
-virtual void internal_reserve (buffer_operation *op)
 
-virtual void internal_consume (buffer_operation *op)
 
-virtual void internal_release (buffer_operation *op)
 
-task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
-void reset_receiver (reset_flags)
 
-void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - - - - - - - -

-Protected Attributes

-internal::round_robin_cache< T,
-null_rw_mutex
my_successors
 
-internal::edge_container
-< predecessor_type
my_built_predecessors
 
-bool forwarder_busy
 
-internal::aggregator
-< handler_type,
-buffer_operation
my_aggregator
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
- - - - - - - - - - - - - - + + + + + + + + + + +

-Friends

-class internal::forward_task_bypass< buffer_node< T, A > >
 
-class internal::aggregating_functor< class_type, buffer_operation >
 
-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
bucket_accessor (concurrent_hash_map *base, const hashcode_t h, bool writer=false)
 
+void acquire (concurrent_hash_map *base, const hashcode_t h, bool writer=false)
 find a bucket by masked hashcode, optionally rehash, and acquire the lock
 
+bool is_writer ()
 check whether bucket is locked for write
 
+bucket * operator() ()
 get bucket pointer
 

Detailed Description

-

template<typename T, typename A = cache_aligned_allocator<T>>
-class tbb::flow::interface8::buffer_node< T, A >

+

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor

-

Forwards messages in arbitrary order.

-

Member Function Documentation

- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::flow::interface8::buffer_node< T, A >::register_successor (successor_typer)
-
-inlinevirtual
-
- -

Adds a new successor.

-

Adds successor r to the list of successors; may forward tasks.

- -

Implements tbb::flow::interface8::sender< T >.

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::flow::interface8::buffer_node< T, A >::remove_successor (successor_typer)
-
-inlinevirtual
-
- -

Removes a successor.

-

Removes successor r from the list of successors. It also calls r.remove_predecessor(*this) to remove this node as a predecessor.

- -

Implements tbb::flow::interface8::sender< T >.

- -

References tbb::flow::interface8::receiver< T >::remove_predecessor().

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
bool tbb::flow::interface8::buffer_node< T, A >::try_consume ()
-
-inlinevirtual
-
- -

Consumes a reserved item.

-

true = item is removed from sender and reservation removed

- -

Reimplemented from tbb::flow::interface8::sender< T >.

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::flow::interface8::buffer_node< T, A >::try_get (T & v)
-
-inlinevirtual
-
- -

Request an item from the buffer_node.

-

true = v contains the returned item
- false = no item has been returned

- -

Reimplemented from tbb::flow::interface8::sender< T >.

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
bool tbb::flow::interface8::buffer_node< T, A >::try_release ()
-
-inlinevirtual
-
- -

Release a reserved item.

-

true = item has been released and so remains in sender

- -

Reimplemented from tbb::flow::interface8::sender< T >.

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::flow::interface8::buffer_node< T, A >::try_reserve (T & v)
-
-inlinevirtual
-
- -

Reserves an item.

-

false = no item can be reserved
- true = an item is reserved

- -

Reimplemented from tbb::flow::interface8::sender< T >.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +

    bucket accessor is to find, rehash, acquire a lock, and access a bucket

    +

The documentation for this class was generated from the following file:
    +
  • concurrent_hash_map.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00033.png b/doc/html/a00033.png index 012b770474..9dea0c02f2 100644 Binary files a/doc/html/a00033.png and b/doc/html/a00033.png differ diff --git a/doc/html/a00034.html b/doc/html/a00034.html index 783274c286..6496051c3d 100644 --- a/doc/html/a00034.html +++ b/doc/html/a00034.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::buffer_node< T, A >::buffer_operation Class Reference +tbb::flow::interface8::buffer_node< T, A > Class Template Reference @@ -33,68 +33,579 @@
-
tbb::flow::interface8::buffer_node< T, A >::buffer_operation Class Reference
+
tbb::flow::interface8::buffer_node< T, A > Class Template Reference
+ +

Forwards messages in arbitrary order. + More...

+ +

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::buffer_node< T, A >::buffer_operation:
+Inheritance diagram for tbb::flow::interface8::buffer_node< T, A >:
- - + + +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T > +tbb::flow::interface8::priority_queue_node< T, Compare, A > +tbb::flow::interface8::queue_node< T, A > +tbb::flow::interface8::sequencer_node< T, A >
+ + + +

+Classes

class  buffer_operation
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef buffer_node< T, A > class_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

buffer_operation (const T &e, op_type t)
 
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
+void set_name (const char *name)
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
+void internal_add_built_successor (successor_type &r)
 
+void internal_delete_built_successor (successor_type &r)
 
+void internal_add_built_predecessor (predecessor_type &p)
 
+void internal_delete_built_predecessor (predecessor_type &p)
 
+size_t predecessor_count ()
 
+size_t successor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
+ + + + + + + + + + + + +

+Protected Types

enum  op_type {
+  reg_succ, +rem_succ, +req_item, +res_item, +
+  rel_res, +con_res, +put_item, +try_fwd_task, +
+  add_blt_succ, +del_blt_succ, +add_blt_pred, +del_blt_pred, +
+  blt_succ_cnt, +blt_pred_cnt, +blt_succ_cpy, +blt_pred_cpy +
+ }
 
enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef size_t size_type
 
+typedef
+internal::aggregating_functor
+< class_type, buffer_operation
handler_type
 
+typedef sender< T >
+::built_successors_type 
built_successors_type
 
+typedef receiver< T >
+::built_predecessors_type 
built_predecessors_type
 
- - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Public Attributes

-char type
 
-task * ltask
 
-union {
   input_type *   elem
 
   successor_type *   r
 
   predecessor_type *   p
 
   size_t   cnt_val
 
   successor_list_type *   svec
 
   predecessor_list_type *   pvec
 
}; 
 
-T * elem
 

+Protected Member Functions

+virtual void handle_operations (buffer_operation *op_list)
 
+task * grab_forwarding_task (buffer_operation &op_data)
 
+bool enqueue_forwarding_task (buffer_operation &op_data)
 
+virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
+virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
+virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
+built_successors_typebuilt_successors ()
 
+virtual void internal_add_built_succ (buffer_operation *op)
 
+virtual void internal_del_built_succ (buffer_operation *op)
 
+built_predecessors_typebuilt_predecessors ()
 
+virtual void internal_add_built_pred (buffer_operation *op)
 
+virtual void internal_del_built_pred (buffer_operation *op)
 
+virtual void internal_succ_cnt (buffer_operation *op)
 
+virtual void internal_pred_cnt (buffer_operation *op)
 
+virtual void internal_copy_succs (buffer_operation *op)
 
+virtual void internal_copy_preds (buffer_operation *op)
 
+virtual void internal_forward_task (buffer_operation *op)
 Tries to forward valid items to successors.
 
+virtual void internal_push (buffer_operation *op)
 
+virtual void internal_pop (buffer_operation *op)
 
+virtual void internal_reserve (buffer_operation *op)
 
+virtual void internal_consume (buffer_operation *op)
 
+virtual void internal_release (buffer_operation *op)
 
+task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
+void reset_receiver (reset_flags)
 
+void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual bool is_continue_receiver ()
 
+ + + + + + + + + + + + + + + + +

+Protected Attributes

+internal::round_robin_cache< T,
+null_rw_mutex
my_successors
 
+internal::edge_container
+< predecessor_type
my_built_predecessors
 
+bool forwarder_busy
 
+internal::aggregator
+< handler_type,
+buffer_operation
my_aggregator
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 
+ + + + + + + + + + + + + + +

+Friends

+class internal::forward_task_bypass< buffer_node< T, A > >
 
+class internal::aggregating_functor< class_type, buffer_operation >
 
+template<typename R , typename B >
class run_and_put_task
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
+

Detailed Description

+

template<typename T, typename A = cache_aligned_allocator<T>>
+class tbb::flow::interface8::buffer_node< T, A >

+ +

Forwards messages in arbitrary order.

+

Member Function Documentation

+ +
+
+
+template<typename T, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
bool tbb::flow::interface8::buffer_node< T, A >::register_successor (successor_typer)
+
+inlinevirtual
+
+ +

Adds a new successor.

+

Adds successor r to the list of successors; may forward tasks.

+ +

Implements tbb::flow::interface8::sender< T >.

+ +
+
+ +
+
+
+template<typename T, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
bool tbb::flow::interface8::buffer_node< T, A >::remove_successor (successor_typer)
+
+inlinevirtual
+
+ +

Removes a successor.

+

Removes successor r from the list of successors. It also calls r.remove_predecessor(*this) to remove this node as a predecessor.

+ +

Implements tbb::flow::interface8::sender< T >.

+ +

References tbb::flow::interface8::receiver< T >::remove_predecessor().

+ +
+
+ +
+
+
+template<typename T, typename A = cache_aligned_allocator<T>>
+ + + + +
+ + + + + + + +
bool tbb::flow::interface8::buffer_node< T, A >::try_consume ()
+
+inlinevirtual
+
+ +

Consumes a reserved item.

+

true = item is removed from sender and reservation removed

+ +

Reimplemented from tbb::flow::interface8::sender< T >.

+ +
+
+ +
+
+
+template<typename T, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
bool tbb::flow::interface8::buffer_node< T, A >::try_get (T & v)
+
+inlinevirtual
+
+ +

Request an item from the buffer_node.

+

true = v contains the returned item
+ false = no item has been returned

+ +

Reimplemented from tbb::flow::interface8::sender< T >.

+ +
+
+ +
+
+
+template<typename T, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + +
bool tbb::flow::interface8::buffer_node< T, A >::try_release ()
+
+inlinevirtual
+
+ +

Release a reserved item.

+

true = item has been released and so remains in sender

+ +

Reimplemented from tbb::flow::interface8::sender< T >.

+ +
+
+ +
+
+
+template<typename T, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
bool tbb::flow::interface8::buffer_node< T, A >::try_reserve (T & v)
+
+inlinevirtual
+
+ +

Reserves an item.

+

false = no item can be reserved
+ true = an item is reserved

+ +

Reimplemented from tbb::flow::interface8::sender< T >.

+ +
+

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00034.png b/doc/html/a00034.png index ec16bbca92..012b770474 100644 Binary files a/doc/html/a00034.png and b/doc/html/a00034.png differ diff --git a/doc/html/a00035.html b/doc/html/a00035.html index 14d97d3997..284f5af88a 100644 --- a/doc/html/a00035.html +++ b/doc/html/a00035.html @@ -4,7 +4,7 @@ -tbb::cache_aligned_allocator< T > Class Template Reference +tbb::flow::interface8::buffer_node< T, A >::buffer_operation Class Reference @@ -33,112 +33,68 @@
-
tbb::cache_aligned_allocator< T > Class Template Reference
+
tbb::flow::interface8::buffer_node< T, A >::buffer_operation Class Reference
- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. - More...

- -

#include <cache_aligned_allocator.h>

+
+Inheritance diagram for tbb::flow::interface8::buffer_node< T, A >::buffer_operation:
+
+
+ + + +
- - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - -

-Public Types

-typedef
-internal::allocator_type< T >
-::value_type 
value_type
 
-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
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +

Public Member Functions

cache_aligned_allocator (const cache_aligned_allocator &) throw ()
 
-template<typename U >
 cache_aligned_allocator (const cache_aligned_allocator< U > &) throw ()
 
-pointer address (reference x) const
 
-const_pointer address (const_reference x) const
 
-pointer allocate (size_type n, const void *hint=0)
 Allocate space for n objects, starting on a cache/sector line.
 
-void deallocate (pointer p, size_type)
 Free block of memory that starts on a cache line.
 
-size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
-template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
-void construct (pointer p, value_type &&value)
 
-void construct (pointer p, const value_type &value)
 
-void destroy (pointer p)
 Destroy value at location pointed to by p.
 
buffer_operation (const T &e, op_type t)
 
+ + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+char type
 
+task * ltask
 
+union {
   input_type *   elem
 
   successor_type *   r
 
   predecessor_type *   p
 
   size_t   cnt_val
 
   successor_list_type *   svec
 
   predecessor_list_type *   pvec
 
}; 
 
+T * elem
 
-

Detailed Description

-

template<typename T>
-class tbb::cache_aligned_allocator< T >

- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

-

The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

-

The documentation for this class was generated from the following file:
    -
  • cache_aligned_allocator.h
  • +
    The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00035.png b/doc/html/a00035.png new file mode 100644 index 0000000000..ec16bbca92 Binary files /dev/null and b/doc/html/a00035.png differ diff --git a/doc/html/a00036.html b/doc/html/a00036.html index 4ff1aefbee..d883183dc5 100644 --- a/doc/html/a00036.html +++ b/doc/html/a00036.html @@ -4,7 +4,7 @@ -tbb::cache_aligned_allocator< void > Class Template Reference +tbb::cache_aligned_allocator< T > Class Template Reference @@ -33,53 +33,112 @@
-
tbb::cache_aligned_allocator< void > Class Template Reference
+
tbb::cache_aligned_allocator< T > Class Template Reference
-

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. +

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...

#include <cache_aligned_allocator.h>

- +

Classes

struct  rebind
struct  rebind
 
- - - - - - + + + + + + + + + + + + + + +

Public Types

-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 
+typedef
+internal::allocator_type< T >
+::value_type 
value_type
 
+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
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

cache_aligned_allocator (const cache_aligned_allocator &) throw ()
 
+template<typename U >
 cache_aligned_allocator (const cache_aligned_allocator< U > &) throw ()
 
+pointer address (reference x) const
 
+const_pointer address (const_reference x) const
 
+pointer allocate (size_type n, const void *hint=0)
 Allocate space for n objects, starting on a cache/sector line.
 
+void deallocate (pointer p, size_type)
 Free block of memory that starts on a cache line.
 
+size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
+template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
+void construct (pointer p, value_type &&value)
 
+void construct (pointer p, const value_type &value)
 
+void destroy (pointer p)
 Destroy value at location pointed to by p.
 

Detailed Description

-

template<>
-class tbb::cache_aligned_allocator< void >

+

template<typename T>
+class tbb::cache_aligned_allocator< T >

-

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

+

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

+

The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.


The documentation for this class was generated from the following file:
  • cache_aligned_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00037.html b/doc/html/a00037.html index ffe6de31df..86091fd5f4 100644 --- a/doc/html/a00037.html +++ b/doc/html/a00037.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Struct Reference +tbb::cache_aligned_allocator< void > Class Template Reference @@ -33,41 +33,53 @@
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Struct Reference
+
tbb::cache_aligned_allocator< void > Class Template Reference
+ +

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. + More...

+ +

#include <cache_aligned_allocator.h>

- - - - - + + +

-Public Member Functions

call_clear_on_leave (concurrent_hash_map *a_ch_map)
 
-void dismiss ()
 

+Classes

struct  rebind
 
- - - + + + + + + +

-Public Attributes

-concurrent_hash_mapmy_ch_map
 

+Public Types

+typedef void * pointer
 
+typedef const void * const_pointer
 
+typedef void value_type
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_hash_map.h
  • +

    Detailed Description

    +

    template<>
    +class tbb::cache_aligned_allocator< void >

    + +

    Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

    +

    The documentation for this class was generated from the following file:
      +
    • cache_aligned_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00038.html b/doc/html/a00038.html index dceb3f048e..a3c3f068b3 100644 --- a/doc/html/a00038.html +++ b/doc/html/a00038.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::callback< Callback, T > Class Template Reference +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Struct Reference @@ -33,43 +33,41 @@
-
tbb::flow::interface8::callback< Callback, T > Class Template Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Struct Reference
-
-Inheritance diagram for tbb::flow::interface8::callback< Callback, T >:
-
-
- - -tbb::flow::interface8::callback_base - -
- - - - + + + + +

Public Member Functions

callback (graph &g, Callback c, const T &t)
 
-void call () const
 
call_clear_on_leave (concurrent_hash_map *a_ch_map)
 
+void dismiss ()
 
+ + +

+Public Attributes

+concurrent_hash_mapmy_ch_map
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • concurrent_hash_map.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00038.png b/doc/html/a00038.png deleted file mode 100644 index d4d69067fa..0000000000 Binary files a/doc/html/a00038.png and /dev/null differ diff --git a/doc/html/a00039.html b/doc/html/a00039.html index 1ed0fc4b06..db8068acf5 100644 --- a/doc/html/a00039.html +++ b/doc/html/a00039.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::callback_base Class Reference +tbb::flow::interface8::callback< Callback, T > Class Template Reference @@ -33,32 +33,35 @@
-
tbb::flow::interface8::callback_base Class Referenceabstract
+
tbb::flow::interface8::callback< Callback, T > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::callback_base:
+Inheritance diagram for tbb::flow::interface8::callback< Callback, T >:
- - -tbb::flow::interface8::callback< Callback, T > + + +tbb::flow::interface8::callback_base
- - + + + +

Public Member Functions

-virtual void call () const =0
 
callback (graph &g, Callback c, const T &t)
 
+void call () const
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -66,7 +69,7 @@

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00039.png b/doc/html/a00039.png index 6650f1591a..d4d69067fa 100644 Binary files a/doc/html/a00039.png and b/doc/html/a00039.png differ diff --git a/doc/html/a00040.html b/doc/html/a00040.html index 1e7873a39e..ce4ad20812 100644 --- a/doc/html/a00040.html +++ b/doc/html/a00040.html @@ -4,7 +4,7 @@ -tbb::captured_exception Class Reference +tbb::flow::interface8::callback_base Class Reference @@ -33,179 +33,40 @@
-
tbb::captured_exception Class Reference
+
tbb::flow::interface8::callback_base Class Referenceabstract
- -

This class is used by TBB to propagate information about unhandled exceptions into the root thread. - More...

- -

#include <tbb_exception.h>

-Inheritance diagram for tbb::captured_exception:
+Inheritance diagram for tbb::flow::interface8::callback_base:
- - -tbb::tbb_exception + + +tbb::flow::interface8::callback< Callback, T >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

Public Member Functions

captured_exception (const captured_exception &src)
 
captured_exception (const char *name_, const char *info)
 
-captured_exceptionoperator= (const captured_exception &src)
 
captured_exception
-*__TBB_EXPORTED_METHOD 
move () throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
void __TBB_EXPORTED_METHOD destroy () throw ()
 Destroys objects created by the move() method. More...
 
void throw_self ()
 Throws this exception object. More...
 
-const char *__TBB_EXPORTED_METHOD name () const throw ()
 Returns RTTI name of the originally intercepted exception.
 
-const char *__TBB_EXPORTED_METHOD what () const throw ()
 Returns the result of originally intercepted exception's what() method.
 
-void __TBB_EXPORTED_METHOD set (const char *name, const char *info) throw ()
 
-void __TBB_EXPORTED_METHOD clear () throw ()
 
- Public Member Functions inherited from tbb::tbb_exception
void operator delete (void *p)
 
+virtual void call () const =0
 
-

Detailed Description

-

This class is used by TBB to propagate information about unhandled exceptions into the root thread.

-

Exception of this type is thrown by TBB in the root thread (thread that started a parallel algorithm ) if an unhandled exception was intercepted during the algorithm execution in one of the workers.

-
See Also
tbb::tbb_exception
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - -
void __TBB_EXPORTED_METHOD tbb::captured_exception::destroy ()
throw (
)
-
-virtual
-
- -

Destroys objects created by the move() method.

-

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

- -

Implements tbb::tbb_exception.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - -
captured_exception* __TBB_EXPORTED_METHOD tbb::captured_exception::move ()
throw (
)
-
-virtual
-
- -

Creates and returns pointer to the deep copy of this exception object.

-

Move semantics is allowed.

- -

Implements tbb::tbb_exception.

- -
-
- -
-
- - - - - -
- - - - - - - -
void tbb::captured_exception::throw_self ()
-
-inlinevirtual
-
- -

Throws this exception object.

-

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

- -

Implements tbb::tbb_exception.

- -
-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +
  • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00040.png b/doc/html/a00040.png index 131abf604d..6650f1591a 100644 Binary files a/doc/html/a00040.png and b/doc/html/a00040.png differ diff --git a/doc/html/a00041.html b/doc/html/a00041.html index 9f1877ea52..7df6a0d52b 100644 --- a/doc/html/a00041.html +++ b/doc/html/a00041.html @@ -4,7 +4,7 @@ -tbb::combinable< T > Class Template Reference +tbb::captured_exception Class Reference @@ -33,69 +33,179 @@
-
tbb::combinable< T > Class Template Reference
+
tbb::captured_exception Class Reference
-

Thread-local storage with optional reduction. +

This class is used by TBB to propagate information about unhandled exceptions into the root thread. More...

-

#include <combinable.h>

+

#include <tbb_exception.h>

+
+Inheritance diagram for tbb::captured_exception:
+
+
+ + +tbb::tbb_exception + +
- - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

-template<typename finit >
 combinable (finit _finit)
 
~combinable ()
 destructor
 
combinable (const combinable &other)
 
-combinableoperator= (const combinable &other)
 
-void clear ()
 
-T & local ()
 
-T & local (bool &exists)
 
-template<typename combine_func_t >
combine (combine_func_t f_combine)
 
-template<typename combine_func_t >
void combine_each (combine_func_t f_combine)
 
captured_exception (const captured_exception &src)
 
captured_exception (const char *name_, const char *info)
 
+captured_exceptionoperator= (const captured_exception &src)
 
captured_exception
+*__TBB_EXPORTED_METHOD 
move () throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
void __TBB_EXPORTED_METHOD destroy () throw ()
 Destroys objects created by the move() method. More...
 
void throw_self ()
 Throws this exception object. More...
 
+const char *__TBB_EXPORTED_METHOD name () const throw ()
 Returns RTTI name of the originally intercepted exception.
 
+const char *__TBB_EXPORTED_METHOD what () const throw ()
 Returns the result of originally intercepted exception's what() method.
 
+void __TBB_EXPORTED_METHOD set (const char *name, const char *info) throw ()
 
+void __TBB_EXPORTED_METHOD clear () throw ()
 
- Public Member Functions inherited from tbb::tbb_exception
void operator delete (void *p)
 

Detailed Description

-

template<typename T>
-class tbb::combinable< T >

+

This class is used by TBB to propagate information about unhandled exceptions into the root thread.

+

Exception of this type is thrown by TBB in the root thread (thread that started a parallel algorithm ) if an unhandled exception was intercepted during the algorithm execution in one of the workers.

+
See Also
tbb::tbb_exception
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + +
void __TBB_EXPORTED_METHOD tbb::captured_exception::destroy ()
throw (
)
+
+virtual
+
+ +

Destroys objects created by the move() method.

+

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

+ +

Implements tbb::tbb_exception.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + +
captured_exception* __TBB_EXPORTED_METHOD tbb::captured_exception::move ()
throw (
)
+
+virtual
+
+ +

Creates and returns pointer to the deep copy of this exception object.

+

Move semantics is allowed.

+ +

Implements tbb::tbb_exception.

-

Thread-local storage with optional reduction.

-

The documentation for this class was generated from the following file:
    -
  • combinable.h
  • +
+
+ +
+
+ + + + + +
+ + + + + + + +
void tbb::captured_exception::throw_self ()
+
+inlinevirtual
+
+ +

Throws this exception object.

+

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

+ +

Implements tbb::tbb_exception.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • tbb_exception.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00041.png b/doc/html/a00041.png new file mode 100644 index 0000000000..131abf604d Binary files /dev/null and b/doc/html/a00041.png differ diff --git a/doc/html/a00042.html b/doc/html/a00042.html index 036f5ec0c1..5add4eebde 100644 --- a/doc/html/a00042.html +++ b/doc/html/a00042.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::composite_node< InputTuple, OutputTuple > Class Template Reference +tbb::combinable< T > Class Template Reference @@ -33,21 +33,69 @@
+
-
tbb::flow::interface8::composite_node< InputTuple, OutputTuple > Class Template Reference
+
tbb::combinable< T > Class Template Reference
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • + +

    Thread-local storage with optional reduction. + More...

    + +

    #include <combinable.h>

    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<typename finit >
     combinable (finit _finit)
     
    ~combinable ()
     destructor
     
    combinable (const combinable &other)
     
    +combinableoperator= (const combinable &other)
     
    +void clear ()
     
    +T & local ()
     
    +T & local (bool &exists)
     
    +template<typename combine_func_t >
    combine (combine_func_t f_combine)
     
    +template<typename combine_func_t >
    void combine_each (combine_func_t f_combine)
     
    +

    Detailed Description

    +

    template<typename T>
    +class tbb::combinable< T >

    + +

    Thread-local storage with optional reduction.

    +

    The documentation for this class was generated from the following file:
      +
    • combinable.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00043.html b/doc/html/a00043.html index a65c2170d5..39a3218cd8 100644 --- a/doc/html/a00043.html +++ b/doc/html/a00043.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > Class Template Reference +tbb::flow::interface8::composite_node< InputTuple, OutputTuple > Class Template Reference @@ -33,111 +33,21 @@
-
-
tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > Class Template Reference
+
tbb::flow::interface8::composite_node< InputTuple, OutputTuple > Class Template Reference
-
-Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >:
-
-
- - -tbb::flow::interface8::graph_node - -
- - - - - - -

-Public Types

-typedef tbb::flow::tuple
-< receiver< InputTypes > &... > 
input_ports_type
 
-typedef tbb::flow::tuple
-< sender< OutputTypes > &... > 
output_ports_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

composite_node (graph &g, const char *type_name="composite_node")
 
composite_node (graph &g)
 
-template<typename T1 , typename T2 >
void set_external_ports (T1 &&input_ports_tuple, T2 &&output_ports_tuple)
 
-template<typename... NodeTypes>
void add_visible_nodes (const NodeTypes &...n)
 
-template<typename... NodeTypes>
void add_nodes (const NodeTypes &...n)
 
-template<typename... Nodes>
void add_nodes (Nodes &...)
 
-template<typename... Nodes>
void add_visible_nodes (Nodes &...)
 
-void set_name (const char *name)
 
-input_ports_type input_ports ()
 
-output_ports_type output_ports ()
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - -

-Protected Member Functions

-void reset_node (reset_flags)
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00043.png b/doc/html/a00043.png deleted file mode 100644 index e2672430d7..0000000000 Binary files a/doc/html/a00043.png and /dev/null differ diff --git a/doc/html/a00044.html b/doc/html/a00044.html index 6cab969651..a1dc3cd027 100644 --- a/doc/html/a00044.html +++ b/doc/html/a00044.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > Class Template Reference +tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > Class Template Reference @@ -33,7 +33,7 @@ +List of all members
-
tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > Class Template Reference
+
tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >:
+Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >:
- - -tbb::flow::interface8::graph_node + + +tbb::flow::interface8::graph_node
- - +< receiver< InputTypes > &... >  + + +

Public Types

+
typedef tbb::flow::tuple
-< receiver< InputTypes > &... > 
input_ports_type
 
input_ports_type
 
+typedef tbb::flow::tuple
+< sender< OutputTypes > &... > 
output_ports_type
 
- - - - - - - - + + + + + + + - - - + + - - - + + - - - + + - - - + + - - + - - + + + - - - - + + + +

Public Member Functions

composite_node (graph &g, const char *type_name="composite_node")
 
composite_node (graph &g)
 
-template<typename T >
void set_external_ports (T &&input_ports_tuple)
 
+
composite_node (graph &g, const char *type_name="composite_node")
 
composite_node (graph &g)
 
+template<typename T1 , typename T2 >
void set_external_ports (T1 &&input_ports_tuple, T2 &&output_ports_tuple)
 
template<typename... NodeTypes>
void add_visible_nodes (const NodeTypes &...n)
 
+
void add_visible_nodes (const NodeTypes &...n)
 
template<typename... NodeTypes>
void add_nodes (const NodeTypes &...n)
 
+
void add_nodes (const NodeTypes &...n)
 
template<typename... Nodes>
void add_nodes (Nodes &...)
 
+
void add_nodes (Nodes &...)
 
template<typename... Nodes>
void add_visible_nodes (Nodes &...)
 
+
void add_visible_nodes (Nodes &...)
 
void set_name (const char *name)
 
+
 
input_ports_type input_ports ()
 
+
 
+output_ports_type output_ports ()
 
void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - +

Protected Member Functions

+
void reset_node (reset_flags)
 
 
- - - - - - - + + + + + + +

Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00044.png b/doc/html/a00044.png index e22b5a1acb..e2672430d7 100644 Binary files a/doc/html/a00044.png and b/doc/html/a00044.png differ diff --git a/doc/html/a00045.html b/doc/html/a00045.html index d05d792f05..313dff754d 100644 --- a/doc/html/a00045.html +++ b/doc/html/a00045.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > Class Template Reference +tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > Class Template Reference @@ -33,7 +33,7 @@ +List of all members
-
tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > Class Template Reference
+
tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >:
+Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >:
- - -tbb::flow::interface8::graph_node + + +tbb::flow::interface8::graph_node
- - +< receiver< InputTypes > &... >  +

Public Types

+
typedef tbb::flow::tuple
-< sender< OutputTypes > &... > 
output_ports_type
 
input_ports_type
 
- - - - - + + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - - + + + - - - - + + + +

Public Member Functions

composite_node (graph &g, const char *type_name="composite_node")
 
composite_node (graph &g)
 
+
composite_node (graph &g, const char *type_name="composite_node")
 
composite_node (graph &g)
 
template<typename T >
void set_external_ports (T &&output_ports_tuple)
 
+
void set_external_ports (T &&input_ports_tuple)
 
template<typename... NodeTypes>
void add_visible_nodes (const NodeTypes &...n)
 
+
void add_visible_nodes (const NodeTypes &...n)
 
template<typename... NodeTypes>
void add_nodes (const NodeTypes &...n)
 
+
void add_nodes (const NodeTypes &...n)
 
template<typename... Nodes>
void add_nodes (Nodes &...)
 
+
void add_nodes (Nodes &...)
 
template<typename... Nodes>
void add_visible_nodes (Nodes &...)
 
+
void add_visible_nodes (Nodes &...)
 
void set_name (const char *name)
 
-output_ports_type output_ports ()
 
+
 
+input_ports_type input_ports ()
 
void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - +

Protected Member Functions

+
void reset_node (reset_flags)
 
 
- - - - - - - + + + + + + +

Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00045.png b/doc/html/a00045.png index c8701d6fd9..e22b5a1acb 100644 Binary files a/doc/html/a00045.png and b/doc/html/a00045.png differ diff --git a/doc/html/a00046.html b/doc/html/a00046.html index 355c2b6209..c36cf5c2a7 100644 --- a/doc/html/a00046.html +++ b/doc/html/a00046.html @@ -4,7 +4,7 @@ -tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference +tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > Class Template Reference @@ -33,21 +33,104 @@
+
-
tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference
+
tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > Class Template Reference
+
+Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >:
+
+
+ + +tbb::flow::interface8::graph_node + +
+ + + + +

+Public Types

+typedef tbb::flow::tuple
+< sender< OutputTypes > &... > 
output_ports_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

composite_node (graph &g, const char *type_name="composite_node")
 
composite_node (graph &g)
 
+template<typename T >
void set_external_ports (T &&output_ports_tuple)
 
+template<typename... NodeTypes>
void add_visible_nodes (const NodeTypes &...n)
 
+template<typename... NodeTypes>
void add_nodes (const NodeTypes &...n)
 
+template<typename... Nodes>
void add_nodes (Nodes &...)
 
+template<typename... Nodes>
void add_visible_nodes (Nodes &...)
 
+void set_name (const char *name)
 
+output_ports_type output_ports ()
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
+ + + +

+Protected Member Functions

+void reset_node (reset_flags)
 
+ + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00046.png b/doc/html/a00046.png new file mode 100644 index 0000000000..c8701d6fd9 Binary files /dev/null and b/doc/html/a00046.png differ diff --git a/doc/html/a00047.html b/doc/html/a00047.html index aefad45b19..519b9a5a4f 100644 --- a/doc/html/a00047.html +++ b/doc/html/a00047.html @@ -4,7 +4,7 @@ -tbb::concurrent_bounded_queue< T, A > Class Template Reference +tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference @@ -33,376 +33,21 @@
-
-
tbb::concurrent_bounded_queue< T, A > Class Template Reference
+
tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference
- -

A high-performance thread-safe blocking concurrent bounded queue. - More...

- -

#include <concurrent_queue.h>

-
-Inheritance diagram for tbb::concurrent_bounded_queue< T, A >:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T value_type
 Element type in the queue.
 
-typedef A allocator_type
 Allocator type.
 
-typedef T & reference
 Reference type.
 
-typedef const T & const_reference
 Const reference type.
 
typedef std::ptrdiff_t size_type
 Integral type for representing size of the queue. More...
 
-typedef std::ptrdiff_t difference_type
 Difference type for iterator.
 
-typedef
-internal::concurrent_queue_iterator
-< concurrent_bounded_queue, T > 
iterator
 
-typedef
-internal::concurrent_queue_iterator
-< concurrent_bounded_queue,
-const T > 
const_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

concurrent_bounded_queue (const allocator_type &a=allocator_type())
 Construct empty queue.
 
concurrent_bounded_queue (const concurrent_bounded_queue &src, const allocator_type &a=allocator_type())
 Copy constructor.
 
concurrent_bounded_queue (concurrent_bounded_queue &&src)
 Move constructors.
 
concurrent_bounded_queue (concurrent_bounded_queue &&src, const allocator_type &a)
 
-template<typename InputIterator >
 concurrent_bounded_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
~concurrent_bounded_queue ()
 Destroy queue.
 
-void push (const T &source)
 Enqueue an item at tail of queue.
 
-void push (T &&source)
 Move an item at tail of queue.
 
-template<typename... Arguments>
void emplace (Arguments &&...args)
 
void pop (T &destination)
 Dequeue item from head of queue. More...
 
-void abort ()
 Abort all pending queue operations.
 
bool try_push (const T &source)
 Enqueue an item at tail of queue if queue is not already full. More...
 
bool try_push (T &&source)
 Move an item at tail of queue if queue is not already full. More...
 
-template<typename... Arguments>
bool try_emplace (Arguments &&...args)
 
bool try_pop (T &destination)
 Attempt to dequeue an item from head of queue. More...
 
size_type size () const
 Return number of pushes minus number of pops. More...
 
-bool empty () const
 Equivalent to size()<=0.
 
-size_type capacity () const
 Maximum number of allowed elements.
 
void set_capacity (size_type new_capacity)
 Set the capacity. More...
 
-allocator_type get_allocator () const
 return allocator object
 
-void clear ()
 clear the queue. not thread-safe.
 
-iterator unsafe_begin ()
 
-iterator unsafe_end ()
 
-const_iterator unsafe_begin () const
 
-const_iterator unsafe_end () const
 
- - - - -

-Friends

-template<typename Container , typename Value >
class internal::concurrent_queue_iterator
 
-

Detailed Description

-

template<typename T, class A = cache_aligned_allocator<T>>
-class tbb::concurrent_bounded_queue< T, A >

- -

A high-performance thread-safe blocking concurrent bounded queue.

-

This is the pre-PPL TBB concurrent queue which supports boundedness and blocking semantics. Note that method names agree with the PPL-style concurrent queue. Multiple threads may each push and pop concurrently. Assignment construction is not allowed.

-

Member Typedef Documentation

- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - -
typedef std::ptrdiff_t tbb::concurrent_bounded_queue< T, A >::size_type
-
- -

Integral type for representing size of the queue.

-

Note that the size_type is a signed integral type. This is because the size can be negative if there are pending pops without corresponding pushes.

- -
-
-

Member Function Documentation

- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::concurrent_bounded_queue< T, A >::pop (T & destination)
-
-inline
-
- -

Dequeue item from head of queue.

-

Block until an item becomes available, and then dequeue it.

- -
-
- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::concurrent_bounded_queue< T, A >::set_capacity (size_type new_capacity)
-
-inline
-
- -

Set the capacity.

-

Setting the capacity to 0 causes subsequent try_push operations to always fail, and subsequent push operations to block forever.

- -
-
- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
size_type tbb::concurrent_bounded_queue< T, A >::size () const
-
-inline
-
- -

Return number of pushes minus number of pops.

-

Note that the result can be negative if there are pops waiting for the corresponding pushes. The result can also exceed capacity() if there are push operations in flight.

- -
-
- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::concurrent_bounded_queue< T, A >::try_pop (T & destination)
-
-inline
-
- -

Attempt to dequeue an item from head of queue.

-

Does not wait for item to become available. Returns true if successful; false otherwise.

- -
-
- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::concurrent_bounded_queue< T, A >::try_push (const T & source)
-
-inline
-
- -

Enqueue an item at tail of queue if queue is not already full.

-

Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full.

- -
-
- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::concurrent_bounded_queue< T, A >::try_push (T && source)
-
-inline
-
- -

Move an item at tail of queue if queue is not already full.

-

Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full.

- -
-

The documentation for this class was generated from the following file:
    -
  • concurrent_queue.h
  • +
  • pipeline.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00047.png b/doc/html/a00047.png deleted file mode 100644 index 3dc03c3337..0000000000 Binary files a/doc/html/a00047.png and /dev/null differ diff --git a/doc/html/a00048.html b/doc/html/a00048.html index 7395eb8723..df37093feb 100644 --- a/doc/html/a00048.html +++ b/doc/html/a00048.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference +tbb::concurrent_bounded_queue< T, A > Class Template Reference @@ -33,7 +33,7 @@ +List of all members
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference
+
tbb::concurrent_bounded_queue< T, A > Class Template Reference
-

Unordered map from Key to T. +

A high-performance thread-safe blocking concurrent bounded queue. More...

-

#include <concurrent_hash_map.h>

+

#include <concurrent_queue.h>

-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >:
+Inheritance diagram for tbb::concurrent_bounded_queue< T, A >:
- - + +
- - - - - - - - - - - - - - - - -

-Classes

class  accessor
 Allows write access to elements and combines data access, locking, and garbage collection. More...
 
struct  accessor_not_used
 
class  bucket_accessor
 bucket accessor is to find, rehash, acquire a lock, and access a bucket More...
 
struct  call_clear_on_leave
 
class  const_accessor
 Combines data access, locking, and garbage collection. More...
 
struct  node
 
- - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - + + - - - +internal::concurrent_queue_iterator
+< concurrent_bounded_queue,
+const T >  +

Public Types

-typedef Key key_type
 
-typedef T mapped_type
 
-typedef std::pair< const Key, T > value_type
 
-typedef hash_map_base::size_type size_type
 
-typedef ptrdiff_t difference_type
 
-typedef value_type * pointer
 
-typedef const value_type * const_pointer
 
-typedef value_type & reference
 
-typedef const value_type & const_reference
 
-typedef
-internal::hash_map_iterator
-< concurrent_hash_map,
-value_type > 
iterator
 
-typedef
-internal::hash_map_iterator
-< concurrent_hash_map, const
-value_type > 
const_iterator
 
+
+typedef T value_type
 Element type in the queue.
 
+typedef A allocator_type
 Allocator type.
 
+typedef T & reference
 Reference type.
 
+typedef const T & const_reference
 Const reference type.
 
typedef std::ptrdiff_t size_type
 Integral type for representing size of the queue. More...
 
+typedef std::ptrdiff_t difference_type
 Difference type for iterator.
 
typedef
-internal::hash_map_range
-< iterator > 
range_type
 
+internal::concurrent_queue_iterator
+< concurrent_bounded_queue, T > 
iterator
 
typedef
-internal::hash_map_range
-< const_iterator > 
const_range_type
 
-typedef Allocator allocator_type
 
const_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

concurrent_hash_map (const allocator_type &a=allocator_type())
 Construct empty table.
 
concurrent_hash_map (size_type n, const allocator_type &a=allocator_type())
 Construct empty table with n preallocated buckets. This number serves also as initial concurrency level.
 
concurrent_hash_map (const concurrent_hash_map &table, const allocator_type &a=allocator_type())
 Copy constructor.
 
concurrent_hash_map (concurrent_hash_map &&table)
 Move constructor.
 
concurrent_hash_map (concurrent_hash_map &&table, const allocator_type &a)
 Move constructor.
 
-template<typename I >
 concurrent_hash_map (I first, I last, const allocator_type &a=allocator_type())
 Construction with copying iteration range and given allocator instance.
 
concurrent_hash_map (std::initializer_list< value_type > il, const allocator_type &a=allocator_type())
 Construct empty table with n preallocated buckets. This number serves also as initial concurrency level.
 
-concurrent_hash_mapoperator= (const concurrent_hash_map &table)
 Assignment.
 
-concurrent_hash_mapoperator= (concurrent_hash_map &&table)
 Move Assignment.
 
-concurrent_hash_mapoperator= (std::initializer_list< value_type > il)
 Assignment.
 
void rehash (size_type n=0)
 Rehashes and optionally resizes the whole table. More...
 
-void clear ()
 Clear table.
 
~concurrent_hash_map ()
 Clear table and destroy it.
 
-range_type range (size_type grainsize=1)
 
-const_range_type range (size_type grainsize=1) const
 
-iterator begin ()
 
-iterator end ()
 
-const_iterator begin () const
 
-const_iterator end () const
 
-std::pair< iterator, iterator > equal_range (const Key &key)
 
-std::pair< const_iterator,
-const_iterator > 
equal_range (const Key &key) const
 
-size_type size () const
 Number of items in table.
 
-bool empty () const
 True if size()==0.
 
-size_type max_size () const
 Upper bound on size.
 
-size_type bucket_count () const
 Returns the current number of buckets.
 
-allocator_type get_allocator () const
 return allocator object
 
-void swap (concurrent_hash_map &table)
 swap two instances. Iterators are invalidated
 
-size_type count (const Key &key) const
 Return count of items (0 or 1)
 
bool find (const_accessor &result, const Key &key) const
 Find item and acquire a read lock on the item. More...
 
bool find (accessor &result, const Key &key)
 Find item and acquire a write lock on the item. More...
 
bool insert (const_accessor &result, const Key &key)
 Insert item (if not already present) and acquire a read lock on the item. More...
 
bool insert (accessor &result, const Key &key)
 Insert item (if not already present) and acquire a write lock on the item. More...
 
bool insert (const_accessor &result, const value_type &value)
 Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
 
bool insert (accessor &result, const value_type &value)
 Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
 
bool insert (const value_type &value)
 Insert item by copying if there is no such key present already. More...
 
bool insert (const_accessor &result, value_type &&value)
 Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
 
bool insert (accessor &result, value_type &&value)
 Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
 
bool insert (value_type &&value)
 Insert item by copying if there is no such key present already. More...
 
template<typename... Args>
bool emplace (const_accessor &result, Args &&...args)
 Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
 
template<typename... Args>
bool emplace (accessor &result, Args &&...args)
 Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
 
template<typename... Args>
bool emplace (Args &&...args)
 Insert item by copying if there is no such key present already. More...
 
-template<typename I >
void insert (I first, I last)
 Insert range [first, last)
 
-void insert (std::initializer_list< value_type > il)
 Insert initializer list.
 
bool erase (const Key &key)
 Erase item. More...
 
bool erase (const_accessor &item_accessor)
 Erase item by const_accessor. More...
 
bool erase (accessor &item_accessor)
 Erase item by accessor. More...
 
- - - -

-Protected Types

-typedef Allocator::template
-rebind< node >::other 
node_allocator_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

-void delete_node (node_base *n)
 
-nodesearch_bucket (const key_type &key, bucket *b) const
 
-void rehash_bucket (bucket *b_new, const hashcode_t h)
 
-bool 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=0)
 Insert or find item and optionally acquire a lock on the item.
 
-template<typename Accessor >
bool generic_move_insert (Accessor &&result, value_type &&value)
 
-template<typename Accessor , typename... Args>
bool generic_emplace (Accessor &&result, Args &&...args)
 
-bool exclude (const_accessor &item_accessor)
 delete item by accessor
 
-template<typename I >
std::pair< I, I > internal_equal_range (const Key &key, I end) const
 Returns an iterator for an item defined by the key, or for the next item after it (if upper==true)
 
-void internal_copy (const concurrent_hash_map &source)
 Copy "source" to *this, where *this must start out empty.
 
-template<typename I >
void internal_copy (I first, I last)
 
const_pointer internal_fast_find (const Key &key) const
 Fast find when no concurrent erasure is used. For internal use inside TBB only! More...
 
- - - - - - - - - - - - -

-Static Protected Member Functions

-static nodeallocate_node_copy_construct (node_allocator_type &allocator, const Key &key, const T *t)
 
-static nodeallocate_node_move_construct (node_allocator_type &allocator, const Key &key, const T *t)
 
-template<typename... Args>
static nodeallocate_node_emplace_construct (node_allocator_type &allocator, Args &&...args)
 
-static nodeallocate_node_default_construct (node_allocator_type &allocator, const Key &key, const T *)
 
-static nodedo_not_allocate_node (node_allocator_type &, const Key &, const T *)
 
- - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Protected Attributes

-node_allocator_type my_allocator
 
-HashCompare my_hash_compare
 
concurrent_bounded_queue (const allocator_type &a=allocator_type())
 Construct empty queue.
 
concurrent_bounded_queue (const concurrent_bounded_queue &src, const allocator_type &a=allocator_type())
 Copy constructor.
 
concurrent_bounded_queue (concurrent_bounded_queue &&src)
 Move constructors.
 
concurrent_bounded_queue (concurrent_bounded_queue &&src, const allocator_type &a)
 
+template<typename InputIterator >
 concurrent_bounded_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
~concurrent_bounded_queue ()
 Destroy queue.
 
+void push (const T &source)
 Enqueue an item at tail of queue.
 
+void push (T &&source)
 Move an item at tail of queue.
 
+template<typename... Arguments>
void emplace (Arguments &&...args)
 
void pop (T &destination)
 Dequeue item from head of queue. More...
 
+void abort ()
 Abort all pending queue operations.
 
bool try_push (const T &source)
 Enqueue an item at tail of queue if queue is not already full. More...
 
bool try_push (T &&source)
 Move an item at tail of queue if queue is not already full. More...
 
+template<typename... Arguments>
bool try_emplace (Arguments &&...args)
 
bool try_pop (T &destination)
 Attempt to dequeue an item from head of queue. More...
 
size_type size () const
 Return number of pushes minus number of pops. More...
 
+bool empty () const
 Equivalent to size()<=0.
 
+size_type capacity () const
 Maximum number of allowed elements.
 
void set_capacity (size_type new_capacity)
 Set the capacity. More...
 
+allocator_type get_allocator () const
 return allocator object
 
+void clear ()
 clear the queue. not thread-safe.
 
+iterator unsafe_begin ()
 
+iterator unsafe_end ()
 
+const_iterator unsafe_begin () const
 
+const_iterator unsafe_end () const
 
- - - - - - - - - - - - - - - - - - + +

Friends

+
template<typename Container , typename Value >
class internal::hash_map_iterator
 
-template<typename I >
class internal::hash_map_range
 
-class const_accessor
 
-const_accessoraccessor_location (accessor_not_used const &)
 
-const_accessoraccessor_location (const_accessor &a)
 
-bool is_write_access_needed (accessor const &)
 
-bool is_write_access_needed (const_accessor const &)
 
-bool is_write_access_needed (accessor_not_used const &)
 
class internal::concurrent_queue_iterator
 

Detailed Description

-

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >

- -

Unordered map from Key to T.

-
concurrent_hash_map is associative container with concurrent access.
-
Compatibility
The class meets all Container Requirements from C++ Standard (See ISO/IEC 14882:2003(E), clause 23.1).
-
Exception Safety
    -
  • Hash function is not permitted to throw an exception. User-defined types Key and T are forbidden from throwing an exception in destructors.
  • -
  • If exception happens during insert() operations, it has no effect (unless exception raised by HashCompare::hash() function during grow_segment).
  • -
  • If exception happens during operator=() operation, the container can have a part of source items, and methods size() and empty() can return wrong results.
  • -
-
-
Changes since TBB 2.1
    -
  • Replaced internal algorithm and data structure. Patent is pending.
  • -
  • Added buckets number argument for constructor
  • -
-
-
Changes since TBB 2.0
    -
  • Fixed exception-safety
  • -
  • Added template argument for allocator
  • -
  • Added allocator argument in constructors
  • -
  • Added constructor from a range of iterators
  • -
  • Added several new overloaded insert() methods
  • -
  • Added get_allocator()
  • -
  • Added swap()
  • -
  • Added count()
  • -
  • Added overloaded erase(accessor &) and erase(const_accessor&)
  • -
  • Added equal_range() [const]
  • -
  • Added [const_]pointer, [const_]reference, and allocator_type types
  • -
  • Added global functions: operator==(), operator!=(), and swap()
  • -
-
-

Member Function Documentation

- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-
-template<typename... Args>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::emplace (const_accessorresult,
Args &&... args 
)
-
-inline
-
- -

Insert item by copying if there is no such key present already and acquire a read lock on the item.

-

Returns true if item is new.

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-
-template<typename... Args>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::emplace (accessorresult,
Args &&... args 
)
-
-inline
-
- -

Insert item by copying if there is no such key present already and acquire a write lock on the item.

-

Returns true if item is new.

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-
-template<typename... Args>
- - - - - -
- - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::emplace (Args &&... args)
-
-inline
-
- -

Insert item by copying if there is no such key present already.

-

Returns true if item is inserted.

+

template<typename T, class A = cache_aligned_allocator<T>>
+class tbb::concurrent_bounded_queue< T, A >

-
-
- +

A high-performance thread-safe blocking concurrent bounded queue.

+

This is the pre-PPL TBB concurrent queue which supports boundedness and blocking semantics. Note that method names agree with the PPL-style concurrent queue. Multiple threads may each push and pop concurrently. Assignment construction is not allowed.

+

Member Typedef Documentation

+
-template<typename Key , typename T , typename HashCompare , typename A >
+template<typename T , class A = cache_aligned_allocator<T>>
- - - - - +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase (const Key & key)typedef std::ptrdiff_t tbb::concurrent_bounded_queue< T, A >::size_type
-

Erase item.

-

Return true if item was erased by particularly this call.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor::is_writer().

+

Integral type for representing size of the queue.

+

Note that the size_type is a signed integral type. This is because the size can be negative if there are pending pops without corresponding pushes.

- +

Member Function Documentation

+
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+template<typename T , class A = cache_aligned_allocator<T>>
- + - - + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase void tbb::concurrent_bounded_queue< T, A >::pop (const_accessoritem_accessor)T & destination)
@@ -608,25 +247,25 @@
-

Erase item by const_accessor.

-

Return true if item was erased by particularly this call.

+

Dequeue item from head of queue.

+

Block until an item becomes available, and then dequeue it.

- +
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+template<typename T , class A = cache_aligned_allocator<T>>
- + - - + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase void tbb::concurrent_bounded_queue< T, A >::set_capacity (accessoritem_accessor)size_type new_capacity)
@@ -637,272 +276,25 @@
-

Erase item by accessor.

-

Return true if item was erased by particularly this call.

+

Set the capacity.

+

Setting the capacity to 0 causes subsequent try_push operations to always fail, and subsequent push operations to block forever.

- +
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+template<typename T , class A = cache_aligned_allocator<T>>
- - -
- + - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::find size_type tbb::concurrent_bounded_queue< T, A >::size (const_accessorresult,
const Key & key 
) const
-
-inline
-
- -

Find item and acquire a read lock on the item.

-

Return true if item is found, false otherwise.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
- - -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::find (accessorresult,
const Key & key 
)
-
-inline
-
- -

Find item and acquire a write lock on the item.

-

Return true if item is found, false otherwise.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const_accessorresult,
const Key & key 
)
-
-inline
-
- -

Insert item (if not already present) and acquire a read lock on the item.

-

Returns true if item is new.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (accessorresult,
const Key & key 
)
-
-inline
-
- -

Insert item (if not already present) and acquire a write lock on the item.

-

Returns true if item is new.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const_accessorresult,
const value_type & value 
)
-
-inline
-
- -

Insert item by copying if there is no such key present already and acquire a read lock on the item.

-

Returns true if item is new.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (accessorresult,
const value_type & value 
)
-
-inline
-
- -

Insert item by copying if there is no such key present already and acquire a write lock on the item.

-

Returns true if item is new.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - @@ -912,36 +304,26 @@
- - - - - - - + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const value_type & value)) const
-

Insert item by copying if there is no such key present already.

-

Returns true if item is inserted.

+

Return number of pushes minus number of pops.

+

Note that the result can be negative if there are pops waiting for the corresponding pushes. The result can also exceed capacity() if there are push operations in flight.

- +
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+template<typename T , class A = cache_aligned_allocator<T>>
@@ -951,36 +333,26 @@
- + - - - - - + + - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert bool tbb::concurrent_bounded_queue< T, A >::try_pop (const_accessorresult,
T & destination) value_type && value 
)
-

Insert item by copying if there is no such key present already and acquire a read lock on the item.

-

Returns true if item is new.

+

Attempt to dequeue an item from head of queue.

+

Does not wait for item to become available. Returns true if successful; false otherwise.

- +
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+template<typename T , class A = cache_aligned_allocator<T>>
@@ -990,25 +362,25 @@
- + - - - - - + + - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert bool tbb::concurrent_bounded_queue< T, A >::try_push (accessorresult,
const T & source) value_type && value 
)
-

Insert item by copying if there is no such key present already and acquire a write lock on the item.

-

Returns true if item is new.

+

Enqueue an item at tail of queue if queue is not already full.

+

Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full.

- +
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+template<typename T , class A = cache_aligned_allocator<T>>
- + - - + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert bool tbb::concurrent_bounded_queue< T, A >::try_push (value_type && value)T && source)
@@ -1019,68 +391,18 @@
-

Insert item by copying if there is no such key present already.

-

Returns true if item is inserted.

- -
- - -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - -
const_pointer tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::internal_fast_find (const Key & key) const
-
-inlineprotected
-
- -

Fast find when no concurrent erasure is used. For internal use inside TBB only!

-

Return pointer to item with given key, or NULL if no such item exists. Must not be called concurrently with erasure operations.

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare , typename A >
- - - - - - - - -
void tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::rehash (size_type n = 0)
-
- -

Rehashes and optionally resizes the whole table.

-

Useful to optimize performance before or after concurrent operations. Also enables using of find() and count() concurrent methods in serial context.

+

Move an item at tail of queue if queue is not already full.

+

Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full.


The documentation for this class was generated from the following file:
    -
  • concurrent_hash_map.h
  • +
  • concurrent_queue.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00048.png b/doc/html/a00048.png index 3f0a8f2647..3dc03c3337 100644 Binary files a/doc/html/a00048.png and b/doc/html/a00048.png differ diff --git a/doc/html/a00049.html b/doc/html/a00049.html index 8ae60d6fa1..454b8674ca 100644 --- a/doc/html/a00049.html +++ b/doc/html/a00049.html @@ -4,7 +4,7 @@ -tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference @@ -33,7 +33,7 @@ +List of all members
-
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference
+ +

Unordered map from Key to T. + More...

+ +

#include <concurrent_hash_map.h>

-Inheritance diagram for tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >:
+Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >:
- - + +
+ + + + + + + + + + + + + + + + +

+Classes

class  accessor
 Allows write access to elements and combines data access, locking, and garbage collection. More...
 
struct  accessor_not_used
 
class  bucket_accessor
 bucket accessor is to find, rehash, acquire a lock, and access a bucket More...
 
struct  call_clear_on_leave
 
class  const_accessor
 Combines data access, locking, and garbage collection. More...
 
struct  node
 
- - + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

-typedef handle_object handle
 
+typedef Key key_type
 
+typedef T mapped_type
 
+typedef std::pair< const Key, T > value_type
 
+typedef hash_map_base::size_type size_type
 
+typedef ptrdiff_t difference_type
 
+typedef value_type * pointer
 
+typedef const value_type * const_pointer
 
+typedef value_type & reference
 
+typedef const value_type & const_reference
 
+typedef
+internal::hash_map_iterator
+< concurrent_hash_map,
+value_type > 
iterator
 
+typedef
+internal::hash_map_iterator
+< concurrent_hash_map, const
+value_type > 
const_iterator
 
+typedef
+internal::hash_map_range
+< iterator > 
range_type
 
+typedef
+internal::hash_map_range
+< const_iterator > 
const_range_type
 
+typedef Allocator allocator_type
 
- - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

concurrent_lru_cache (value_function_type f, std::size_t number_of_lru_history_items)
 
-handle_object operator[] (key_type k)
 
concurrent_hash_map (const allocator_type &a=allocator_type())
 Construct empty table.
 
concurrent_hash_map (size_type n, const allocator_type &a=allocator_type())
 Construct empty table with n preallocated buckets. This number serves also as initial concurrency level.
 
concurrent_hash_map (const concurrent_hash_map &table, const allocator_type &a=allocator_type())
 Copy constructor.
 
concurrent_hash_map (concurrent_hash_map &&table)
 Move constructor.
 
concurrent_hash_map (concurrent_hash_map &&table, const allocator_type &a)
 Move constructor.
 
+template<typename I >
 concurrent_hash_map (I first, I last, const allocator_type &a=allocator_type())
 Construction with copying iteration range and given allocator instance.
 
concurrent_hash_map (std::initializer_list< value_type > il, const allocator_type &a=allocator_type())
 Construct empty table with n preallocated buckets. This number serves also as initial concurrency level.
 
+concurrent_hash_mapoperator= (const concurrent_hash_map &table)
 Assignment.
 
+concurrent_hash_mapoperator= (concurrent_hash_map &&table)
 Move Assignment.
 
+concurrent_hash_mapoperator= (std::initializer_list< value_type > il)
 Assignment.
 
void rehash (size_type n=0)
 Rehashes and optionally resizes the whole table. More...
 
+void clear ()
 Clear table.
 
~concurrent_hash_map ()
 Clear table and destroy it.
 
+range_type range (size_type grainsize=1)
 
+const_range_type range (size_type grainsize=1) const
 
+iterator begin ()
 
+iterator end ()
 
+const_iterator begin () const
 
+const_iterator end () const
 
+std::pair< iterator, iterator > equal_range (const Key &key)
 
+std::pair< const_iterator,
+const_iterator > 
equal_range (const Key &key) const
 
+size_type size () const
 Number of items in table.
 
+bool empty () const
 True if size()==0.
 
+size_type max_size () const
 Upper bound on size.
 
+size_type bucket_count () const
 Returns the current number of buckets.
 
+allocator_type get_allocator () const
 return allocator object
 
+void swap (concurrent_hash_map &table)
 swap two instances. Iterators are invalidated
 
+size_type count (const Key &key) const
 Return count of items (0 or 1)
 
bool find (const_accessor &result, const Key &key) const
 Find item and acquire a read lock on the item. More...
 
bool find (accessor &result, const Key &key)
 Find item and acquire a write lock on the item. More...
 
bool insert (const_accessor &result, const Key &key)
 Insert item (if not already present) and acquire a read lock on the item. More...
 
bool insert (accessor &result, const Key &key)
 Insert item (if not already present) and acquire a write lock on the item. More...
 
bool insert (const_accessor &result, const value_type &value)
 Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
 
bool insert (accessor &result, const value_type &value)
 Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
 
bool insert (const value_type &value)
 Insert item by copying if there is no such key present already. More...
 
bool insert (const_accessor &result, value_type &&value)
 Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
 
bool insert (accessor &result, value_type &&value)
 Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
 
bool insert (value_type &&value)
 Insert item by copying if there is no such key present already. More...
 
template<typename... Args>
bool emplace (const_accessor &result, Args &&...args)
 Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
 
template<typename... Args>
bool emplace (accessor &result, Args &&...args)
 Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
 
template<typename... Args>
bool emplace (Args &&...args)
 Insert item by copying if there is no such key present already. More...
 
+template<typename I >
void insert (I first, I last)
 Insert range [first, last)
 
+void insert (std::initializer_list< value_type > il)
 Insert initializer list.
 
bool erase (const Key &key)
 Erase item. More...
 
bool erase (const_accessor &item_accessor)
 Erase item by const_accessor. More...
 
bool erase (accessor &item_accessor)
 Erase item by accessor. More...
 
+ + + +

+Protected Types

+typedef Allocator::template
+rebind< node >::other 
node_allocator_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

+void delete_node (node_base *n)
 
+nodesearch_bucket (const key_type &key, bucket *b) const
 
+void rehash_bucket (bucket *b_new, const hashcode_t h)
 
+bool 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=0)
 Insert or find item and optionally acquire a lock on the item.
 
+template<typename Accessor >
bool generic_move_insert (Accessor &&result, value_type &&value)
 
+template<typename Accessor , typename... Args>
bool generic_emplace (Accessor &&result, Args &&...args)
 
+bool exclude (const_accessor &item_accessor)
 delete item by accessor
 
+template<typename I >
std::pair< I, I > internal_equal_range (const Key &key, I end) const
 Returns an iterator for an item defined by the key, or for the next item after it (if upper==true)
 
+void internal_copy (const concurrent_hash_map &source)
 Copy "source" to *this, where *this must start out empty.
 
+template<typename I >
void internal_copy (I first, I last)
 
const_pointer internal_fast_find (const Key &key) const
 Fast find when no concurrent erasure is used. For internal use inside TBB only! More...
 
+ + + + + + + + + + + + +

+Static Protected Member Functions

+static nodeallocate_node_copy_construct (node_allocator_type &allocator, const Key &key, const T *t)
 
+static nodeallocate_node_move_construct (node_allocator_type &allocator, const Key &key, const T *t)
 
+template<typename... Args>
static nodeallocate_node_emplace_construct (node_allocator_type &allocator, Args &&...args)
 
+static nodeallocate_node_default_construct (node_allocator_type &allocator, const Key &key, const T *)
 
+static nodedo_not_allocate_node (node_allocator_type &, const Key &, const T *)
 
+ + + + +

+Protected Attributes

+node_allocator_type my_allocator
 
+HashCompare my_hash_compare
 
- - + + + + + + + + + + + + + + + + + + +

Friends

-class tbb::internal::aggregating_functor< self_type, aggregated_operation_type >
 
+template<typename Container , typename Value >
class internal::hash_map_iterator
 
+template<typename I >
class internal::hash_map_range
 
+class const_accessor
 
+const_accessoraccessor_location (accessor_not_used const &)
 
+const_accessoraccessor_location (const_accessor &a)
 
+bool is_write_access_needed (accessor const &)
 
+bool is_write_access_needed (const_accessor const &)
 
+bool is_write_access_needed (accessor_not_used const &)
 
+

Detailed Description

+

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >

+ +

Unordered map from Key to T.

+
concurrent_hash_map is associative container with concurrent access.
+
Compatibility
The class meets all Container Requirements from C++ Standard (See ISO/IEC 14882:2003(E), clause 23.1).
+
Exception Safety
    +
  • Hash function is not permitted to throw an exception. User-defined types Key and T are forbidden from throwing an exception in destructors.
  • +
  • If exception happens during insert() operations, it has no effect (unless exception raised by HashCompare::hash() function during grow_segment).
  • +
  • If exception happens during operator=() operation, the container can have a part of source items, and methods size() and empty() can return wrong results.
  • +
+
+
Changes since TBB 2.1
    +
  • Replaced internal algorithm and data structure. Patent is pending.
  • +
  • Added buckets number argument for constructor
  • +
+
+
Changes since TBB 2.0
    +
  • Fixed exception-safety
  • +
  • Added template argument for allocator
  • +
  • Added allocator argument in constructors
  • +
  • Added constructor from a range of iterators
  • +
  • Added several new overloaded insert() methods
  • +
  • Added get_allocator()
  • +
  • Added swap()
  • +
  • Added count()
  • +
  • Added overloaded erase(accessor &) and erase(const_accessor&)
  • +
  • Added equal_range() [const]
  • +
  • Added [const_]pointer, [const_]reference, and allocator_type types
  • +
  • Added global functions: operator==(), operator!=(), and swap()
  • +
+
+

Member Function Documentation

+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::emplace (const_accessorresult,
Args &&... args 
)
+
+inline
+
+ +

Insert item by copying if there is no such key present already and acquire a read lock on the item.

+

Returns true if item is new.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::emplace (accessorresult,
Args &&... args 
)
+
+inline
+
+ +

Insert item by copying if there is no such key present already and acquire a write lock on the item.

+

Returns true if item is new.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::emplace (Args &&... args)
+
+inline
+
+ +

Insert item by copying if there is no such key present already.

+

Returns true if item is inserted.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare , typename A >
+ + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase (const Key & key)
+
+ +

Erase item.

+

Return true if item was erased by particularly this call.

+ +

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor::is_writer().

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase (const_accessoritem_accessor)
+
+inline
+
+ +

Erase item by const_accessor.

+

Return true if item was erased by particularly this call.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase (accessoritem_accessor)
+
+inline
+
+ +

Erase item by accessor.

+

Return true if item was erased by particularly this call.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::find (const_accessorresult,
const Key & key 
) const
+
+inline
+
+ +

Find item and acquire a read lock on the item.

+

Return true if item is found, false otherwise.

+ +

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::find (accessorresult,
const Key & key 
)
+
+inline
+
+ +

Find item and acquire a write lock on the item.

+

Return true if item is found, false otherwise.

+ +

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const_accessorresult,
const Key & key 
)
+
+inline
+
+ +

Insert item (if not already present) and acquire a read lock on the item.

+

Returns true if item is new.

+ +

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (accessorresult,
const Key & key 
)
+
+inline
+
+ +

Insert item (if not already present) and acquire a write lock on the item.

+

Returns true if item is new.

+ +

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const_accessorresult,
const value_type & value 
)
+
+inline
+
+ +

Insert item by copying if there is no such key present already and acquire a read lock on the item.

+

Returns true if item is new.

+ +

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (accessorresult,
const value_type & value 
)
+
+inline
+
+ +

Insert item by copying if there is no such key present already and acquire a write lock on the item.

+

Returns true if item is new.

+ +

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const value_type & value)
+
+inline
+
+ +

Insert item by copying if there is no such key present already.

+

Returns true if item is inserted.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const_accessorresult,
value_type && value 
)
+
+inline
+
+ +

Insert item by copying if there is no such key present already and acquire a read lock on the item.

+

Returns true if item is new.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (accessorresult,
value_type && value 
)
+
+inline
+
+ +

Insert item by copying if there is no such key present already and acquire a write lock on the item.

+

Returns true if item is new.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + +
+ + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (value_type && value)
+
+inline
+
+ +

Insert item by copying if there is no such key present already.

+

Returns true if item is inserted.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + +
const_pointer tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::internal_fast_find (const Key & key) const
+
+inlineprotected
+
+ +

Fast find when no concurrent erasure is used. For internal use inside TBB only!

+

Return pointer to item with given key, or NULL if no such item exists. Must not be called concurrently with erasure operations.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare , typename A >
+ + + + + + + + +
void tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::rehash (size_type n = 0)
+
+ +

Rehashes and optionally resizes the whole table.

+

Useful to optimize performance before or after concurrent operations. Also enables using of find() and count() concurrent methods in serial context.

+ +
+

The documentation for this class was generated from the following file:
    -
  • concurrent_lru_cache.h
  • +
  • concurrent_hash_map.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00049.png b/doc/html/a00049.png index 856b3afbc6..3f0a8f2647 100644 Binary files a/doc/html/a00049.png and b/doc/html/a00049.png differ diff --git a/doc/html/a00050.html b/doc/html/a00050.html index c6bbe0776e..0175a8cfab 100644 --- a/doc/html/a00050.html +++ b/doc/html/a00050.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference +tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference @@ -33,7 +33,7 @@ +Friends | +List of all members
-
tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference
+
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference
- -

Concurrent priority queue. - More...

- -

#include <concurrent_priority_queue.h>

+
+Inheritance diagram for tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >:
+
+
+ + + +
- - - - - - - - - - - - - - - - - - + +

Public Types

-typedef T value_type
 Element type in the queue.
 
-typedef T & reference
 Reference type.
 
-typedef const T & const_reference
 Const reference type.
 
-typedef size_t size_type
 Integral type for representing size of the queue.
 
-typedef ptrdiff_t difference_type
 Difference type for iterator.
 
-typedef A allocator_type
 Allocator type.
 
+typedef handle_object handle
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

concurrent_priority_queue (const allocator_type &a=allocator_type())
 Constructs a new concurrent_priority_queue with default capacity.
 
concurrent_priority_queue (size_type init_capacity, const allocator_type &a=allocator_type())
 Constructs a new concurrent_priority_queue with init_sz capacity.
 
-template<typename InputIterator >
 concurrent_priority_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
concurrent_priority_queue (std::initializer_list< T > init_list, const allocator_type &a=allocator_type())
 Constructor from std::initializer_list.
 
 concurrent_priority_queue (const concurrent_priority_queue &src)
 Copy constructor. More...
 
 concurrent_priority_queue (const concurrent_priority_queue &src, const allocator_type &a)
 Copy constructor with specific allocator. More...
 
concurrent_priority_queueoperator= (const concurrent_priority_queue &src)
 Assignment operator. More...
 
 concurrent_priority_queue (concurrent_priority_queue &&src)
 Move constructor. More...
 
 concurrent_priority_queue (concurrent_priority_queue &&src, const allocator_type &a)
 Move constructor with specific allocator. More...
 
concurrent_priority_queueoperator= (concurrent_priority_queue &&src)
 Move assignment operator. More...
 
-template<typename InputIterator >
void assign (InputIterator begin, InputIterator end)
 Assign the queue from [begin,end) range, not thread-safe.
 
-void assign (std::initializer_list< T > il)
 Assign the queue from std::initializer_list, not thread-safe.
 
-concurrent_priority_queueoperator= (std::initializer_list< T > il)
 Assign from std::initializer_list, not thread-safe.
 
bool empty () const
 Returns true if empty, false otherwise. More...
 
size_type size () const
 Returns the current number of elements contained in the queue. More...
 
void push (const_reference elem)
 Pushes elem onto the queue, increasing capacity of queue if necessary. More...
 
void push (value_type &&elem)
 Pushes elem onto the queue, increasing capacity of queue if necessary. More...
 
template<typename... Args>
void emplace (Args &&...args)
 Constructs a new element using args as the arguments for its construction and pushes it onto the queue */. More...
 
bool try_pop (reference elem)
 Gets a reference to and removes highest priority element. More...
 
void clear ()
 Clear the queue; not thread-safe. More...
 
void swap (concurrent_priority_queue &q)
 Swap this queue with another; not thread-safe. More...
 
-allocator_type get_allocator () const
 Return allocator object.
 
-

Detailed Description

-

template<typename T, typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
-class tbb::interface5::concurrent_priority_queue< T, Compare, A >

- -

Concurrent priority queue.

-

Constructor & Destructor Documentation

- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (const concurrent_priority_queue< T, Compare, A > & src)
-
-inlineexplicit
-
- -

Copy constructor.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - - - - - - - - - - - -
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (const concurrent_priority_queue< T, Compare, A > & src,
const allocator_typea 
)
-
-inline
-
- -

Copy constructor with specific allocator.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (concurrent_priority_queue< T, Compare, A > && src)
-
-inline
-
- -

Move constructor.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - - - - - - - - - - - -
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (concurrent_priority_queue< T, Compare, A > && src,
const allocator_typea 
)
-
-inline
-
- -

Move constructor with specific allocator.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
-

Member Function Documentation

- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::clear ()
-
-inline
-
- -

Clear the queue; not thread-safe.

-

This operation is unsafe if there are pending concurrent operations on the queue. Resets size, effectively emptying queue; does not free space. May not clear elements added in pending operations.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
-
-template<typename... Args>
- - - - - -
- - - - - - - - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::emplace (Args &&... args)
-
-inline
-
- -

Constructs a new element using args as the arguments for its construction and pushes it onto the queue */.

-

This operation can be safely used concurrently with other push, try_pop or emplace operations.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
bool tbb::interface5::concurrent_priority_queue< T, Compare, A >::empty () const
-
-inline
-
- -

Returns true if empty, false otherwise.

-

Returned value may not reflect results of pending operations. This operation reads shared data and will trigger a race condition.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
concurrent_priority_queue& tbb::interface5::concurrent_priority_queue< T, Compare, A >::operator= (const concurrent_priority_queue< T, Compare, A > & src)
-
-inline
-
- -

Assignment operator.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
concurrent_priority_queue& tbb::interface5::concurrent_priority_queue< T, Compare, A >::operator= (concurrent_priority_queue< T, Compare, A > && src)
-
-inline
-
- -

Move assignment operator.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::push (const_reference elem)
-
-inline
-
- -

Pushes elem onto the queue, increasing capacity of queue if necessary.

-

This operation can be safely used concurrently with other push, try_pop or emplace operations.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::push (value_type && elem)
-
-inline
-
- -

Pushes elem onto the queue, increasing capacity of queue if necessary.

-

This operation can be safely used concurrently with other push, try_pop or emplace operations.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
size_type tbb::interface5::concurrent_priority_queue< T, Compare, A >::size () const
-
-inline
-
- -

Returns the current number of elements contained in the queue.

-

Returned value may not reflect results of pending operations. This operation reads shared data and will trigger a race condition.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::swap (concurrent_priority_queue< T, Compare, A > & q)
-
-inline
-
- -

Swap this queue with another; not thread-safe.

-

This operation is unsafe if there are pending concurrent operations on the queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - + + + + +
- - - - - - - - -
bool tbb::interface5::concurrent_priority_queue< T, Compare, A >::try_pop (reference elem)
-
-inline
concurrent_lru_cache (value_function_type f, std::size_t number_of_lru_history_items)
 
+handle_object operator[] (key_type k)
 
+ + +

+Friends

+class tbb::internal::aggregating_functor< self_type, aggregated_operation_type >
 
-
- -

Gets a reference to and removes highest priority element.

-

If a highest priority element was found, sets elem and returns true, otherwise returns false. This operation can be safely used concurrently with other push, try_pop or emplace operations.

- -
-

The documentation for this class was generated from the following file:
    -
  • concurrent_priority_queue.h
  • +
  • concurrent_lru_cache.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00050.png b/doc/html/a00050.png new file mode 100644 index 0000000000..856b3afbc6 Binary files /dev/null and b/doc/html/a00050.png differ diff --git a/doc/html/a00051.html b/doc/html/a00051.html index e0b2c6ccca..ec0fc02040 100644 --- a/doc/html/a00051.html +++ b/doc/html/a00051.html @@ -4,7 +4,7 @@ -tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference +tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference @@ -33,167 +33,549 @@
-
tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference
+
tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference
-

A high-performance thread-safe non-blocking concurrent queue. +

Concurrent priority queue. More...

-

#include <concurrent_queue.h>

-
-Inheritance diagram for tbb::strict_ppl::concurrent_queue< T, A >:
-
-
- - - -
+

#include <concurrent_priority_queue.h>

- - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

Public Types

-typedef T value_type
 Element type in the queue.
 
-typedef T & reference
 Reference type.
 
-typedef const T & const_reference
 Const reference type.
 
-typedef size_t size_type
 Integral type for representing size of the queue.
 
-typedef ptrdiff_t difference_type
 Difference type for iterator.
 
-typedef A allocator_type
 Allocator type.
 
-typedef
-internal::concurrent_queue_iterator
-< concurrent_queue, T > 
iterator
 
-typedef
-internal::concurrent_queue_iterator
-< concurrent_queue, const T > 
const_iterator
 
+typedef T value_type
 Element type in the queue.
 
+typedef T & reference
 Reference type.
 
+typedef const T & const_reference
 Const reference type.
 
+typedef size_t size_type
 Integral type for representing size of the queue.
 
+typedef ptrdiff_t difference_type
 Difference type for iterator.
 
+typedef A allocator_type
 Allocator type.
 
- - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

concurrent_queue (const allocator_type &a=allocator_type())
 Construct empty queue.
 
+
concurrent_priority_queue (const allocator_type &a=allocator_type())
 Constructs a new concurrent_priority_queue with default capacity.
 
concurrent_priority_queue (size_type init_capacity, const allocator_type &a=allocator_type())
 Constructs a new concurrent_priority_queue with init_sz capacity.
 
template<typename InputIterator >
 concurrent_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
concurrent_queue (const concurrent_queue &src, const allocator_type &a=allocator_type())
 Copy constructor.
 
concurrent_queue (concurrent_queue &&src)
 Move constructors.
 
concurrent_queue (concurrent_queue &&src, const allocator_type &a)
 
~concurrent_queue ()
 Destroy queue.
 
-void push (const T &source)
 Enqueue an item at tail of queue.
 
-void push (T &&source)
 
-template<typename... Arguments>
void emplace (Arguments &&...args)
 
bool try_pop (T &result)
 Attempt to dequeue an item from head of queue. More...
 
-size_type unsafe_size () const
 Return the number of items in the queue; thread unsafe.
 
-bool empty () const
 Equivalent to size()==0.
 
-void clear ()
 Clear the queue. not thread-safe.
 
-allocator_type get_allocator () const
 Return allocator object.
 
-iterator unsafe_begin ()
 
-iterator unsafe_end ()
 
-const_iterator unsafe_begin () const
 
-const_iterator unsafe_end () const
 
- - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Friends

-template<typename Container , typename Value >
class internal::concurrent_queue_iterator
 
 concurrent_priority_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
concurrent_priority_queue (std::initializer_list< T > init_list, const allocator_type &a=allocator_type())
 Constructor from std::initializer_list.
 
 concurrent_priority_queue (const concurrent_priority_queue &src)
 Copy constructor. More...
 
 concurrent_priority_queue (const concurrent_priority_queue &src, const allocator_type &a)
 Copy constructor with specific allocator. More...
 
concurrent_priority_queueoperator= (const concurrent_priority_queue &src)
 Assignment operator. More...
 
 concurrent_priority_queue (concurrent_priority_queue &&src)
 Move constructor. More...
 
 concurrent_priority_queue (concurrent_priority_queue &&src, const allocator_type &a)
 Move constructor with specific allocator. More...
 
concurrent_priority_queueoperator= (concurrent_priority_queue &&src)
 Move assignment operator. More...
 
+template<typename InputIterator >
void assign (InputIterator begin, InputIterator end)
 Assign the queue from [begin,end) range, not thread-safe.
 
+void assign (std::initializer_list< T > il)
 Assign the queue from std::initializer_list, not thread-safe.
 
+concurrent_priority_queueoperator= (std::initializer_list< T > il)
 Assign from std::initializer_list, not thread-safe.
 
bool empty () const
 Returns true if empty, false otherwise. More...
 
size_type size () const
 Returns the current number of elements contained in the queue. More...
 
void push (const_reference elem)
 Pushes elem onto the queue, increasing capacity of queue if necessary. More...
 
void push (value_type &&elem)
 Pushes elem onto the queue, increasing capacity of queue if necessary. More...
 
template<typename... Args>
void emplace (Args &&...args)
 Constructs a new element using args as the arguments for its construction and pushes it onto the queue */. More...
 
bool try_pop (reference elem)
 Gets a reference to and removes highest priority element. More...
 
void clear ()
 Clear the queue; not thread-safe. More...
 
void swap (concurrent_priority_queue &q)
 Swap this queue with another; not thread-safe. More...
 
+allocator_type get_allocator () const
 Return allocator object.
 

Detailed Description

-

template<typename T, typename A = cache_aligned_allocator<T>>
-class tbb::strict_ppl::concurrent_queue< T, A >

+

template<typename T, typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+class tbb::interface5::concurrent_priority_queue< T, Compare, A >

+ +

Concurrent priority queue.

+

Constructor & Destructor Documentation

+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (const concurrent_priority_queue< T, Compare, A > & src)
+
+inlineexplicit
+
+ +

Copy constructor.

+

This operation is unsafe if there are pending concurrent operations on the src queue.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (const concurrent_priority_queue< T, Compare, A > & src,
const allocator_typea 
)
+
+inline
+
+ +

Copy constructor with specific allocator.

+

This operation is unsafe if there are pending concurrent operations on the src queue.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (concurrent_priority_queue< T, Compare, A > && src)
+
+inline
+
+ +

Move constructor.

+

This operation is unsafe if there are pending concurrent operations on the src queue.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (concurrent_priority_queue< T, Compare, A > && src,
const allocator_typea 
)
+
+inline
+
+ +

Move constructor with specific allocator.

+

This operation is unsafe if there are pending concurrent operations on the src queue.

+ +
+
+

Member Function Documentation

+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + +
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::clear ()
+
+inline
+
+ +

Clear the queue; not thread-safe.

+

This operation is unsafe if there are pending concurrent operations on the queue. Resets size, effectively emptying queue; does not free space. May not clear elements added in pending operations.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + +
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::emplace (Args &&... args)
+
+inline
+
+ +

Constructs a new element using args as the arguments for its construction and pushes it onto the queue */.

+

This operation can be safely used concurrently with other push, try_pop or emplace operations.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + +
bool tbb::interface5::concurrent_priority_queue< T, Compare, A >::empty () const
+
+inline
+
+ +

Returns true if empty, false otherwise.

+

Returned value may not reflect results of pending operations. This operation reads shared data and will trigger a race condition.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
concurrent_priority_queue& tbb::interface5::concurrent_priority_queue< T, Compare, A >::operator= (const concurrent_priority_queue< T, Compare, A > & src)
+
+inline
+
+ +

Assignment operator.

+

This operation is unsafe if there are pending concurrent operations on the src queue.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
concurrent_priority_queue& tbb::interface5::concurrent_priority_queue< T, Compare, A >::operator= (concurrent_priority_queue< T, Compare, A > && src)
+
+inline
+
+ +

Move assignment operator.

+

This operation is unsafe if there are pending concurrent operations on the src queue.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::push (const_reference elem)
+
+inline
+
+ +

Pushes elem onto the queue, increasing capacity of queue if necessary.

+

This operation can be safely used concurrently with other push, try_pop or emplace operations.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::push (value_type && elem)
+
+inline
+
+ +

Pushes elem onto the queue, increasing capacity of queue if necessary.

+

This operation can be safely used concurrently with other push, try_pop or emplace operations.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + +
size_type tbb::interface5::concurrent_priority_queue< T, Compare, A >::size () const
+
+inline
+
+ +

Returns the current number of elements contained in the queue.

+

Returned value may not reflect results of pending operations. This operation reads shared data and will trigger a race condition.

-

A high-performance thread-safe non-blocking concurrent queue.

-

Multiple threads may each push and pop concurrently. Assignment construction is not allowed.

-

Member Function Documentation

- +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::swap (concurrent_priority_queue< T, Compare, A > & q)
+
+inline
+
+ +

Swap this queue with another; not thread-safe.

+

This operation is unsafe if there are pending concurrent operations on the queue.

+ +
+
+
-template<typename T , typename A = cache_aligned_allocator<T>>
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- + - - + +
bool tbb::strict_ppl::concurrent_queue< T, A >::try_pop bool tbb::interface5::concurrent_priority_queue< T, Compare, A >::try_pop (T & result)reference elem)
@@ -204,18 +586,18 @@
-

Attempt to dequeue an item from head of queue.

-

Does not wait for item to become available. Returns true if successful; false otherwise.

+

Gets a reference to and removes highest priority element.

+

If a highest priority element was found, sets elem and returns true, otherwise returns false. This operation can be safely used concurrently with other push, try_pop or emplace operations.


The documentation for this class was generated from the following file:
    -
  • concurrent_queue.h
  • +
  • concurrent_priority_queue.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00051.png b/doc/html/a00051.png deleted file mode 100644 index c7a9a4dd8a..0000000000 Binary files a/doc/html/a00051.png and /dev/null differ diff --git a/doc/html/a00052.html b/doc/html/a00052.html index 6c96c886f0..97613aeff1 100644 --- a/doc/html/a00052.html +++ b/doc/html/a00052.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Class Template Reference +tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference @@ -33,132 +33,189 @@
-
tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Class Template Reference
+
tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference
+ +

A high-performance thread-safe non-blocking concurrent queue. + More...

+ +

#include <concurrent_queue.h>

-Inheritance diagram for tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >:
+Inheritance diagram for tbb::strict_ppl::concurrent_queue< T, A >:
- - + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +

Public Types

-typedef Key key_type
 
-typedef base_type::value_type value_type
 
-typedef T mapped_type
 
-typedef Hasher hasher
 
-typedef Key_equality key_equal
 
-typedef hash_compare key_compare
 
-typedef base_type::allocator_type allocator_type
 
-typedef base_type::pointer pointer
 
-typedef base_type::const_pointer const_pointer
 
-typedef base_type::reference reference
 
-typedef base_type::const_reference const_reference
 
-typedef base_type::size_type size_type
 
-typedef base_type::difference_type difference_type
 
-typedef base_type::iterator iterator
 
-typedef base_type::const_iterator const_iterator
 
-typedef base_type::iterator local_iterator
 
-typedef base_type::const_iterator const_local_iterator
 
+typedef T value_type
 Element type in the queue.
 
+typedef T & reference
 Reference type.
 
+typedef const T & const_reference
 Const reference type.
 
+typedef size_t size_type
 Integral type for representing size of the queue.
 
+typedef ptrdiff_t difference_type
 Difference type for iterator.
 
+typedef A allocator_type
 Allocator type.
 
+typedef
+internal::concurrent_queue_iterator
+< concurrent_queue, T > 
iterator
 
+typedef
+internal::concurrent_queue_iterator
+< concurrent_queue, const T > 
const_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

concurrent_unordered_map (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_map (const Allocator &a)
 
-template<typename Iterator >
 concurrent_unordered_map (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_map (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_map (const concurrent_unordered_map &table)
 
-concurrent_unordered_mapoperator= (const concurrent_unordered_map &table)
 
concurrent_unordered_map (concurrent_unordered_map &&table)
 
-concurrent_unordered_mapoperator= (concurrent_unordered_map &&table)
 
concurrent_unordered_map (const concurrent_unordered_map &table, const Allocator &a)
 
concurrent_unordered_map (concurrent_unordered_map &&table, const Allocator &a)
 
-mapped_type & operator[] (const key_type &key)
 
-mapped_type & at (const key_type &key)
 
-const mapped_type & at (const key_type &key) const
 
concurrent_queue (const allocator_type &a=allocator_type())
 Construct empty queue.
 
+template<typename InputIterator >
 concurrent_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
concurrent_queue (const concurrent_queue &src, const allocator_type &a=allocator_type())
 Copy constructor.
 
concurrent_queue (concurrent_queue &&src)
 Move constructors.
 
concurrent_queue (concurrent_queue &&src, const allocator_type &a)
 
~concurrent_queue ()
 Destroy queue.
 
+void push (const T &source)
 Enqueue an item at tail of queue.
 
+void push (T &&source)
 
+template<typename... Arguments>
void emplace (Arguments &&...args)
 
bool try_pop (T &result)
 Attempt to dequeue an item from head of queue. More...
 
+size_type unsafe_size () const
 Return the number of items in the queue; thread unsafe.
 
+bool empty () const
 Equivalent to size()==0.
 
+void clear ()
 Clear the queue. not thread-safe.
 
+allocator_type get_allocator () const
 Return allocator object.
 
+iterator unsafe_begin ()
 
+iterator unsafe_end ()
 
+const_iterator unsafe_begin () const
 
+const_iterator unsafe_end () const
 
+ + + + +

+Friends

+template<typename Container , typename Value >
class internal::concurrent_queue_iterator
 
+

Detailed Description

+

template<typename T, typename A = cache_aligned_allocator<T>>
+class tbb::strict_ppl::concurrent_queue< T, A >

+ +

A high-performance thread-safe non-blocking concurrent queue.

+

Multiple threads may each push and pop concurrently. Assignment construction is not allowed.

+

Member Function Documentation

+ +
+
+
+template<typename T , typename A = cache_aligned_allocator<T>>
+ + + + +
+ + + + + + + + +
bool tbb::strict_ppl::concurrent_queue< T, A >::try_pop (T & result)
+
+inline
+
+ +

Attempt to dequeue an item from head of queue.

+

Does not wait for item to become available. Returns true if successful; false otherwise.

+ +
+

The documentation for this class was generated from the following file:
    -
  • concurrent_unordered_map.h
  • +
  • concurrent_queue.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00052.png b/doc/html/a00052.png index 0e3c40436b..c7a9a4dd8a 100644 Binary files a/doc/html/a00052.png and b/doc/html/a00052.png differ diff --git a/doc/html/a00053.html b/doc/html/a00053.html index 5e3ddf525a..25c4a1682b 100644 --- a/doc/html/a00053.html +++ b/doc/html/a00053.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference +tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Class Template Reference @@ -33,64 +33,124 @@
-
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
+
tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Class Template Reference
+
+Inheritance diagram for tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >:
+
+
+ + + +
- - - -

-Classes

class  value_compare
 
- - - - - - + - - - - - -

-Protected Types

enum  { allow_multimapping = Allow_multimapping - }
 
-typedef std::pair< const Key, T > value_type
 
+

+Public Types

typedef Key key_type
 
-typedef Hash_compare hash_compare
 
-typedef Allocator::template
-rebind< value_type >::other 
allocator_type
 
- - - -

-Protected Member Functions

concurrent_unordered_map_traits (const hash_compare &hc)
 
- - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Static Protected Member Functions

-template<class Type1 , class Type2 >
static const Key & get_key (const std::pair< Type1, Type2 > &value)
 
 
+typedef base_type::value_type value_type
 
+typedef T mapped_type
 
+typedef Hasher hasher
 
+typedef Key_equality key_equal
 
+typedef hash_compare key_compare
 
+typedef base_type::allocator_type allocator_type
 
+typedef base_type::pointer pointer
 
+typedef base_type::const_pointer const_pointer
 
+typedef base_type::reference reference
 
+typedef base_type::const_reference const_reference
 
+typedef base_type::size_type size_type
 
+typedef base_type::difference_type difference_type
 
+typedef base_type::iterator iterator
 
+typedef base_type::const_iterator const_iterator
 
+typedef base_type::iterator local_iterator
 
+typedef base_type::const_iterator const_local_iterator
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Protected Attributes

-hash_compare my_hash_compare
 

+Public Member Functions

concurrent_unordered_map (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_map (const Allocator &a)
 
+template<typename Iterator >
 concurrent_unordered_map (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_map (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_map (const concurrent_unordered_map &table)
 
+concurrent_unordered_mapoperator= (const concurrent_unordered_map &table)
 
concurrent_unordered_map (concurrent_unordered_map &&table)
 
+concurrent_unordered_mapoperator= (concurrent_unordered_map &&table)
 
concurrent_unordered_map (const concurrent_unordered_map &table, const Allocator &a)
 
concurrent_unordered_map (concurrent_unordered_map &&table, const Allocator &a)
 
+mapped_type & operator[] (const key_type &key)
 
+mapped_type & at (const key_type &key)
 
+const mapped_type & at (const key_type &key) const
 

The documentation for this class was generated from the following file:
  • concurrent_unordered_map.h
  • @@ -98,7 +158,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00053.png b/doc/html/a00053.png new file mode 100644 index 0000000000..0e3c40436b Binary files /dev/null and b/doc/html/a00053.png differ diff --git a/doc/html/a00054.html b/doc/html/a00054.html index bf5c466cfe..3fa42884ee 100644 --- a/doc/html/a00054.html +++ b/doc/html/a00054.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference +tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference @@ -33,115 +33,64 @@
-
tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference
+
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
-
-Inheritance diagram for tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >:
-
-
- - - -
- - + + +

-Public Types

+

+Classes

class  value_compare
 
+ + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + +

+Protected Types

enum  { allow_multimapping = Allow_multimapping + }
 
+typedef std::pair< const Key, T > value_type
 
typedef Key key_type
 
-typedef base_type::value_type value_type
 
-typedef T mapped_type
 
-typedef Hasher hasher
 
-typedef Key_equality key_equal
 
-typedef hash_compare key_compare
 
-typedef base_type::allocator_type allocator_type
 
-typedef base_type::pointer pointer
 
-typedef base_type::const_pointer const_pointer
 
-typedef base_type::reference reference
 
-typedef base_type::const_reference const_reference
 
-typedef base_type::size_type size_type
 
-typedef base_type::difference_type difference_type
 
-typedef base_type::iterator iterator
 
-typedef base_type::const_iterator const_iterator
 
-typedef base_type::iterator local_iterator
 
-typedef base_type::const_iterator const_local_iterator
 
 
+typedef Hash_compare hash_compare
 
+typedef Allocator::template
+rebind< value_type >::other 
allocator_type
 
+ + + +

+Protected Member Functions

concurrent_unordered_map_traits (const hash_compare &hc)
 
+ + + +

+Static Protected Member Functions

+template<class Type1 , class Type2 >
static const Key & get_key (const std::pair< Type1, Type2 > &value)
 
- - - - - - - - - - - - - - - - - - - - - - - + + +

-Public Member Functions

concurrent_unordered_multimap (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multimap (const Allocator &a)
 
-template<typename Iterator >
 concurrent_unordered_multimap (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multimap (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_multimap (const concurrent_unordered_multimap &table)
 
-concurrent_unordered_multimapoperator= (const concurrent_unordered_multimap &table)
 
concurrent_unordered_multimap (concurrent_unordered_multimap &&table)
 
-concurrent_unordered_multimapoperator= (concurrent_unordered_multimap &&table)
 
concurrent_unordered_multimap (const concurrent_unordered_multimap &table, const Allocator &a)
 
concurrent_unordered_multimap (concurrent_unordered_multimap &&table, const Allocator &a)
 

+Protected Attributes

+hash_compare my_hash_compare
 

The documentation for this class was generated from the following file:
  • concurrent_unordered_map.h
  • @@ -149,7 +98,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00054.png b/doc/html/a00054.png deleted file mode 100644 index 6fa3b58c9a..0000000000 Binary files a/doc/html/a00054.png and /dev/null differ diff --git a/doc/html/a00055.html b/doc/html/a00055.html index 4832f73092..6e19e50812 100644 --- a/doc/html/a00055.html +++ b/doc/html/a00055.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference +tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference @@ -33,7 +33,7 @@
-
tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference
+
tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference
-Inheritance diagram for tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >:
+Inheritance diagram for tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >:
- - + +
- - - + - - - - + + + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - +

Public Types

+
typedef Key key_type
 
+
 
typedef base_type::value_type value_type
 
-typedef Key mapped_type
 
+
 
+typedef T mapped_type
 
typedef Hasher hasher
 
+
 
typedef Key_equality key_equal
 
+
 
typedef hash_compare key_compare
 
+
 
typedef base_type::allocator_type allocator_type
 
+
 
typedef base_type::pointer pointer
 
+
 
typedef base_type::const_pointer const_pointer
 
+
 
typedef base_type::reference reference
 
+
 
typedef base_type::const_reference const_reference
 
+
 
typedef base_type::size_type size_type
 
+
 
typedef base_type::difference_type difference_type
 
+
 
typedef base_type::iterator iterator
 
+
 
typedef base_type::const_iterator const_iterator
 
+
 
typedef base_type::iterator local_iterator
 
+
 
typedef base_type::const_iterator const_local_iterator
 
 
- - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +

Public Member Functions

concurrent_unordered_multiset (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multiset (const Allocator &a)
 
+
concurrent_unordered_multimap (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multimap (const Allocator &a)
 
template<typename Iterator >
 concurrent_unordered_multiset (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multiset (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_multiset (const concurrent_unordered_multiset &table)
 
-concurrent_unordered_multisetoperator= (const concurrent_unordered_multiset &table)
 
concurrent_unordered_multiset (concurrent_unordered_multiset &&table)
 
-concurrent_unordered_multisetoperator= (concurrent_unordered_multiset &&table)
 
concurrent_unordered_multiset (const concurrent_unordered_multiset &table, const Allocator &a)
 
concurrent_unordered_multiset (concurrent_unordered_multiset &&table, const Allocator &a)
 
 concurrent_unordered_multimap (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multimap (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_multimap (const concurrent_unordered_multimap &table)
 
+concurrent_unordered_multimapoperator= (const concurrent_unordered_multimap &table)
 
concurrent_unordered_multimap (concurrent_unordered_multimap &&table)
 
+concurrent_unordered_multimapoperator= (concurrent_unordered_multimap &&table)
 
concurrent_unordered_multimap (const concurrent_unordered_multimap &table, const Allocator &a)
 
concurrent_unordered_multimap (concurrent_unordered_multimap &&table, const Allocator &a)
 

The documentation for this class was generated from the following file:
    -
  • concurrent_unordered_set.h
  • +
  • concurrent_unordered_map.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00055.png b/doc/html/a00055.png index 3ef6d19042..6fa3b58c9a 100644 Binary files a/doc/html/a00055.png and b/doc/html/a00055.png differ diff --git a/doc/html/a00056.html b/doc/html/a00056.html index cd93034d4f..9c665536b9 100644 --- a/doc/html/a00056.html +++ b/doc/html/a00056.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference +tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference @@ -33,115 +33,115 @@
-
tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference
+
tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference
-Inheritance diagram for tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >:
+Inheritance diagram for tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >:
- - + +
- - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - +

Public Types

+
typedef Key key_type
 
+
 
typedef base_type::value_type value_type
 
+
 
typedef Key mapped_type
 
+
 
typedef Hasher hasher
 
+
 
typedef Key_equality key_equal
 
+
 
typedef hash_compare key_compare
 
+
 
typedef base_type::allocator_type allocator_type
 
+
 
typedef base_type::pointer pointer
 
+
 
typedef base_type::const_pointer const_pointer
 
+
 
typedef base_type::reference reference
 
+
 
typedef base_type::const_reference const_reference
 
+
 
typedef base_type::size_type size_type
 
+
 
typedef base_type::difference_type difference_type
 
+
 
typedef base_type::iterator iterator
 
+
 
typedef base_type::const_iterator const_iterator
 
+
 
typedef base_type::iterator local_iterator
 
+
 
typedef base_type::const_iterator const_local_iterator
 
 
- - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +

Public Member Functions

concurrent_unordered_set (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_set (const Allocator &a)
 
+
concurrent_unordered_multiset (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multiset (const Allocator &a)
 
template<typename Iterator >
 concurrent_unordered_set (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_set (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_set (const concurrent_unordered_set &table)
 
-concurrent_unordered_setoperator= (const concurrent_unordered_set &table)
 
concurrent_unordered_set (concurrent_unordered_set &&table)
 
-concurrent_unordered_setoperator= (concurrent_unordered_set &&table)
 
concurrent_unordered_set (const concurrent_unordered_set &table, const Allocator &a)
 
concurrent_unordered_set (concurrent_unordered_set &&table, const Allocator &a)
 
 concurrent_unordered_multiset (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multiset (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_multiset (const concurrent_unordered_multiset &table)
 
+concurrent_unordered_multisetoperator= (const concurrent_unordered_multiset &table)
 
concurrent_unordered_multiset (concurrent_unordered_multiset &&table)
 
+concurrent_unordered_multisetoperator= (concurrent_unordered_multiset &&table)
 
concurrent_unordered_multiset (const concurrent_unordered_multiset &table, const Allocator &a)
 
concurrent_unordered_multiset (concurrent_unordered_multiset &&table, const Allocator &a)
 

The documentation for this class was generated from the following file:
  • concurrent_unordered_set.h
  • @@ -149,7 +149,7 @@

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00056.png b/doc/html/a00056.png index 9f9a099251..3ef6d19042 100644 Binary files a/doc/html/a00056.png and b/doc/html/a00056.png differ diff --git a/doc/html/a00057.html b/doc/html/a00057.html index 6543958f40..1ea349df16 100644 --- a/doc/html/a00057.html +++ b/doc/html/a00057.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference +tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference @@ -33,60 +33,115 @@
-
tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
+
tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference
+
+Inheritance diagram for tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >:
+
+
+ + + +
- - - - - - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Protected Types

enum  { allow_multimapping = Allow_multimapping - }
 
-typedef Key value_type
 
+

+Public Types

typedef Key key_type
 
-typedef Hash_compare hash_compare
 
-typedef Allocator::template
-rebind< value_type >::other 
allocator_type
 
-typedef hash_compare value_compare
 
 
+typedef base_type::value_type value_type
 
+typedef Key mapped_type
 
+typedef Hasher hasher
 
+typedef Key_equality key_equal
 
+typedef hash_compare key_compare
 
+typedef base_type::allocator_type allocator_type
 
+typedef base_type::pointer pointer
 
+typedef base_type::const_pointer const_pointer
 
+typedef base_type::reference reference
 
+typedef base_type::const_reference const_reference
 
+typedef base_type::size_type size_type
 
+typedef base_type::difference_type difference_type
 
+typedef base_type::iterator iterator
 
+typedef base_type::const_iterator const_iterator
 
+typedef base_type::iterator local_iterator
 
+typedef base_type::const_iterator const_local_iterator
 
- - - -

-Protected Member Functions

concurrent_unordered_set_traits (const hash_compare &hc)
 
- - - -

-Static Protected Member Functions

-static const Key & get_key (const value_type &value)
 
- - - + + + + + + + + + + + + + + + + + + + + + + +

-Protected Attributes

-hash_compare my_hash_compare
 

+Public Member Functions

concurrent_unordered_set (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_set (const Allocator &a)
 
+template<typename Iterator >
 concurrent_unordered_set (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_set (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_set (const concurrent_unordered_set &table)
 
+concurrent_unordered_setoperator= (const concurrent_unordered_set &table)
 
concurrent_unordered_set (concurrent_unordered_set &&table)
 
+concurrent_unordered_setoperator= (concurrent_unordered_set &&table)
 
concurrent_unordered_set (const concurrent_unordered_set &table, const Allocator &a)
 
concurrent_unordered_set (concurrent_unordered_set &&table, const Allocator &a)
 

The documentation for this class was generated from the following file:
  • concurrent_unordered_set.h
  • @@ -94,7 +149,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00057.png b/doc/html/a00057.png new file mode 100644 index 0000000000..9f9a099251 Binary files /dev/null and b/doc/html/a00057.png differ diff --git a/doc/html/a00058.html b/doc/html/a00058.html index 6255390b1f..0191be4aa8 100644 --- a/doc/html/a00058.html +++ b/doc/html/a00058.html @@ -4,7 +4,7 @@ -tbb::concurrent_vector< T, A > Class Template Reference +tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference @@ -33,775 +33,68 @@
-
tbb::concurrent_vector< T, A > Class Template Reference
+
tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
- -

Concurrent vector container. - More...

- -

#include <concurrent_vector.h>

-
-Inheritance diagram for tbb::concurrent_vector< T, A >:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + +

-Public Types

-typedef
-internal::concurrent_vector_base_v3::size_type 
size_type
 
-typedef
-internal::allocator_base< T, A >
-::allocator_type 
allocator_type
 
-typedef T value_type
 
-typedef ptrdiff_t difference_type
 
-typedef T & reference
 
-typedef const T & const_reference
 
-typedef T * pointer
 
-typedef const T * const_pointer
 
-typedef
-internal::vector_iterator
-< concurrent_vector, T > 
iterator
 
-typedef
-internal::vector_iterator
-< concurrent_vector, const T > 
const_iterator
 
-typedef std::reverse_iterator
-< iterator > 
reverse_iterator
 
-typedef std::reverse_iterator
-< const_iterator > 
const_reverse_iterator
 
-typedef std::reverse_iterator
-< iterator, T, T &, T * > 
reverse_iterator
 
-typedef std::reverse_iterator
-< const_iterator, T, const T
-&, const T * > 
const_reverse_iterator
 
-typedef generic_range_type
-< iterator > 
range_type
 
-typedef generic_range_type
-< const_iterator > 
const_range_type
 

+Protected Types

enum  { allow_multimapping = Allow_multimapping + }
 
+typedef Key value_type
 
+typedef Key key_type
 
+typedef Hash_compare hash_compare
 
+typedef Allocator::template
+rebind< value_type >::other 
allocator_type
 
+typedef hash_compare value_compare
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +

-Public Member Functions

concurrent_vector (const allocator_type &a=allocator_type())
 Construct empty vector.
 
concurrent_vector (std::initializer_list< T > init_list, const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_vector (const concurrent_vector &vector, const allocator_type &a=allocator_type())
 Copying constructor.
 
concurrent_vector (concurrent_vector &&source)
 Move constructor.
 
concurrent_vector (concurrent_vector &&source, const allocator_type &a)
 
-template<class M >
 concurrent_vector (const concurrent_vector< T, M > &vector, const allocator_type &a=allocator_type())
 Copying constructor for vector with different allocator type.
 
concurrent_vector (size_type n)
 Construction with initial size specified by argument n.
 
concurrent_vector (size_type n, const_reference t, const allocator_type &a=allocator_type())
 Construction with initial size specified by argument n, initialization by copying of t, and given allocator instance.
 
-template<class I >
 concurrent_vector (I first, I last, const allocator_type &a=allocator_type())
 Construction with copying iteration range and given allocator instance.
 
-concurrent_vectoroperator= (const concurrent_vector &vector)
 Assignment.
 
-concurrent_vectoroperator= (concurrent_vector &&other)
 Move assignment.
 
-template<class M >
concurrent_vectoroperator= (const concurrent_vector< T, M > &vector)
 Assignment for vector with different allocator type.
 
-concurrent_vectoroperator= (std::initializer_list< T > init_list)
 Assignment for initializer_list.
 
iterator grow_by (size_type delta)
 Grow by "delta" elements. More...
 
iterator grow_by (size_type delta, const_reference t)
 Grow by "delta" elements using copying constructor. More...
 
template<typename I >
iterator grow_by (I first, I last)
 
iterator grow_by (std::initializer_list< T > init_list)
 
iterator grow_to_at_least (size_type n)
 Append minimal sequence of elements such that size()>=n. More...
 
iterator grow_to_at_least (size_type n, const_reference t)
 
iterator push_back (const_reference item)
 Push item. More...
 
iterator push_back (T &&item)
 Push item, move-aware. More...
 
template<typename... Args>
iterator emplace_back (Args &&...args)
 Push item, create item "in place" with provided arguments. More...
 
reference operator[] (size_type index)
 Get reference to element at given index. More...
 
-const_reference operator[] (size_type index) const
 Get const reference to element at given index.
 
-reference at (size_type index)
 Get reference to element at given index. Throws exceptions on errors.
 
-const_reference at (size_type index) const
 Get const reference to element at given index. Throws exceptions on errors.
 
-range_type range (size_t grainsize=1)
 Get range for iterating with parallel algorithms.
 
-const_range_type range (size_t grainsize=1) const
 Get const range for iterating with parallel algorithms.
 
-size_type size () const
 Return size of vector. It may include elements under construction.
 
-bool empty () const
 Return false if vector is not empty or has elements under construction at least.
 
-size_type capacity () const
 Maximum size to which array can grow without allocating more memory. Concurrent allocations are not included in the value.
 
void reserve (size_type n)
 Allocate enough space to grow to size n without having to allocate more memory later. More...
 
-void resize (size_type n)
 Resize the vector. Not thread-safe.
 
-void resize (size_type n, const_reference t)
 Resize the vector, copy t for new elements. Not thread-safe.
 
-void shrink_to_fit ()
 Optimize memory usage and fragmentation.
 
-size_type max_size () const
 Upper bound on argument to reserve.
 
-iterator begin ()
 start iterator
 
-iterator end ()
 end iterator
 
-const_iterator begin () const
 start const iterator
 
-const_iterator end () const
 end const iterator
 
-const_iterator cbegin () const
 start const iterator
 
-const_iterator cend () const
 end const iterator
 
-reverse_iterator rbegin ()
 reverse start iterator
 
-reverse_iterator rend ()
 reverse end iterator
 
-const_reverse_iterator rbegin () const
 reverse start const iterator
 
-const_reverse_iterator rend () const
 reverse end const iterator
 
-const_reverse_iterator crbegin () const
 reverse start const iterator
 
-const_reverse_iterator crend () const
 reverse end const iterator
 
-reference front ()
 the first item
 
-const_reference front () const
 the first item const
 
-reference back ()
 the last item
 
-const_reference back () const
 the last item const
 
-allocator_type get_allocator () const
 return allocator object
 
-void assign (size_type n, const_reference t)
 assign n items by copying t item
 
-template<class I >
void assign (I first, I last)
 assign range [first, last)
 
-void assign (std::initializer_list< T > init_list)
 assigns an initializer list
 
-void swap (concurrent_vector &vector)
 swap two instances
 
void clear ()
 Clear container while keeping memory allocated. More...
 
~concurrent_vector ()
 Clear and destroy vector.
 
-const
-internal::concurrent_vector_base_v3 & 
internal_vector_base () const
 
-template<typename I >
void copy_range (void *dst, const void *p_type_erased_iterator, size_type n)
 

+Protected Member Functions

concurrent_unordered_set_traits (const hash_compare &hc)
 
- - - - -

-Friends

-template<typename C , typename U >
class internal::vector_iterator
 
-

Detailed Description

-

template<typename T, class A = cache_aligned_allocator<T>>
-class tbb::concurrent_vector< T, A >

- -

Concurrent vector container.

-
concurrent_vector is a container having the following main properties:
-- It provides random indexed access to its elements. The index of the first element is 0.
-- It ensures safe concurrent growing its size (different threads can safely append new elements).
-- Adding new elements does not invalidate existing iterators and does not change indices of existing items.
-
Compatibility
The class meets all Container Requirements and Reversible Container Requirements from C++ Standard (See ISO/IEC 14882:2003(E), clause 23.1). But it doesn't meet Sequence Requirements due to absence of insert() and erase() methods.
-
Exception Safety
Methods working with memory allocation and/or new elements construction can throw an exception if allocator fails to allocate memory or element's default constructor throws one. Concurrent vector's element of type T must conform to the following requirements:
    -
  • Throwing an exception is forbidden for destructor of T.
  • -
  • Default constructor of T must not throw an exception OR its non-virtual destructor must safely work when its object memory is zero-initialized.
  • -
-Otherwise, the program's behavior is undefined.
-
If an exception happens inside growth or assignment operation, an instance of the vector becomes invalid unless it is stated otherwise in the method documentation. Invalid state means:
    -
  • There are no guarantees that all items were initialized by a constructor. The rest of items is zero-filled, including item where exception happens.
  • -
  • An invalid vector instance cannot be repaired; it is unable to grow anymore.
  • -
  • Size and capacity reported by the vector are incorrect, and calculated as if the failed operation were successful.
  • -
  • Attempt to access not allocated elements using operator[] or iterators results in access violation or segmentation fault exception, and in case of using at() method a C++ exception is thrown.
  • -
-If a concurrent grow operation successfully completes, all the elements it has added to the vector will remain valid and accessible even if one of subsequent grow operations fails.
-
Fragmentation
Unlike an STL vector, a concurrent_vector does not move existing elements if it needs to allocate more memory. The container is divided into a series of contiguous arrays of elements. The first reservation, growth, or assignment operation determines the size of the first array. Using small number of elements as initial size incurs fragmentation that may increase element access time. Internal layout can be optimized by method compact() that merges several smaller arrays into one solid.
-
Changes since TBB 2.1
    -
  • Fixed guarantees of concurrent_vector::size() and grow_to_at_least() methods to assure elements are allocated.
  • -
  • Methods end()/rbegin()/back() are partly thread-safe since they use size() to get the end of vector
  • -
  • Added resize() methods (not thread-safe)
  • -
  • Added cbegin/cend/crbegin/crend methods
  • -
  • Changed return type of methods grow* and push_back to iterator
  • -
-
-
Changes since TBB 2.0
    -
  • Implemented exception-safety guarantees
  • -
  • Added template argument for allocator
  • -
  • Added allocator argument in constructors
  • -
  • Faster index calculation
  • -
  • First growth call specifies a number of segments to be merged in the first allocation.
  • -
  • Fixed memory blow up for swarm of vector's instances of small size
  • -
  • Added grow_by(size_type n, const_reference t) growth using copying constructor to init new items.
  • -
  • Added STL-like constructors.
  • -
  • Added operators ==, < and derivatives
  • -
  • Added at() method, approved for using after an exception was thrown inside the vector
  • -
  • Added get_allocator() method.
  • -
  • Added assign() methods
  • -
  • Added compact() method to defragment first segments
  • -
  • Added swap() method
  • -
  • range() defaults on grainsize = 1 supporting auto grainsize algorithms.
  • -
-
-

Member Function Documentation

- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
void tbb::concurrent_vector< T, A >::clear ()
-
-inline
-
- -

Clear container while keeping memory allocated.

-

To free up the memory, use in conjunction with method compact(). Not thread safe

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
-
-template<typename... Args>
- - - - - -
- - - - - - - - -
iterator tbb::concurrent_vector< T, A >::emplace_back (Args &&... args)
-
-inline
-
- -

Push item, create item "in place" with provided arguments.

-

Returns iterator pointing to the new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_by (size_type delta)
-
-inline
-
- -

Grow by "delta" elements.

-

Returns iterator pointing to the first new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - - - - - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_by (size_type delta,
const_reference t 
)
-
-inline
-
- -

Grow by "delta" elements using copying constructor.

-

Returns iterator pointing to the first new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
-
-template<typename I >
- - - - - -
- - - - - - - - - - - - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_by (first,
last 
)
-
-inline
-
-

Returns iterator pointing to the first new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_by (std::initializer_list< T > init_list)
-
-inline
-
-

Returns iterator pointing to the first new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_to_at_least (size_type n)
-
-inline
-
- -

Append minimal sequence of elements such that size()>=n.

-

The new elements are default constructed. Blocks until all elements in range [0..n) are allocated. May return while other elements are being constructed by other threads. Returns iterator that points to beginning of appended sequence. If no elements were appended, returns iterator pointing to nth element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - - - - - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_to_at_least (size_type n,
const_reference t 
)
-
-inline
-
-

Analogous to grow_to_at_least( size_type n ) with exception that the new elements are initialized by copying of t instead of default construction.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
reference tbb::concurrent_vector< T, A >::operator[] (size_type index)
-
-inline
-
- -

Get reference to element at given index.

-

This method is thread-safe for concurrent reads, and also while growing the vector, as long as the calling thread has checked that index < size().

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
iterator tbb::concurrent_vector< T, A >::push_back (const_reference item)
-
-inline
-
- -

Push item.

-

Returns iterator pointing to the new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
iterator tbb::concurrent_vector< T, A >::push_back (T && item)
-
-inline
-
- -

Push item, move-aware.

-

Returns iterator pointing to the new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - + + + +
- - - - - - - - -
void tbb::concurrent_vector< T, A >::reserve (size_type n)
-
-inline

+Static Protected Member Functions

+static const Key & get_key (const value_type &value)
 
+ + +

+Protected Attributes

+hash_compare my_hash_compare
 
-
- -

Allocate enough space to grow to size n without having to allocate more memory later.

-

Like most of the methods provided for STL compatibility, this method is not thread safe. The capacity afterwards may be bigger than the requested reservation.

- -
-

The documentation for this class was generated from the following file:
    -
  • concurrent_vector.h
  • +
  • concurrent_unordered_set.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00058.png b/doc/html/a00058.png deleted file mode 100644 index 4ffff4fb10..0000000000 Binary files a/doc/html/a00058.png and /dev/null differ diff --git a/doc/html/a00059.html b/doc/html/a00059.html index 154286a31a..77e0d67bac 100644 --- a/doc/html/a00059.html +++ b/doc/html/a00059.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference +tbb::concurrent_vector< T, A > Class Template Reference @@ -33,107 +33,775 @@
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference
+
tbb::concurrent_vector< T, A > Class Template Reference
-

Combines data access, locking, and garbage collection. +

Concurrent vector container. More...

-

#include <concurrent_hash_map.h>

+

#include <concurrent_vector.h>

-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor:
+Inheritance diagram for tbb::concurrent_vector< T, A >:
- - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor + +
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

-typedef const
-concurrent_hash_map::value_type 
value_type
 Type of value.
 
+typedef
+internal::concurrent_vector_base_v3::size_type 
size_type
 
+typedef
+internal::allocator_base< T, A >
+::allocator_type 
allocator_type
 
+typedef T value_type
 
+typedef ptrdiff_t difference_type
 
+typedef T & reference
 
+typedef const T & const_reference
 
+typedef T * pointer
 
+typedef const T * const_pointer
 
+typedef
+internal::vector_iterator
+< concurrent_vector, T > 
iterator
 
+typedef
+internal::vector_iterator
+< concurrent_vector, const T > 
const_iterator
 
+typedef std::reverse_iterator
+< iterator > 
reverse_iterator
 
+typedef std::reverse_iterator
+< const_iterator > 
const_reverse_iterator
 
+typedef std::reverse_iterator
+< iterator, T, T &, T * > 
reverse_iterator
 
+typedef std::reverse_iterator
+< const_iterator, T, const T
+&, const T * > 
const_reverse_iterator
 
+typedef generic_range_type
+< iterator > 
range_type
 
+typedef generic_range_type
+< const_iterator > 
const_range_type
 
- - - - - - - - - - - - - - - - - - -

Public Member Functions

-bool empty () const
 True if result is empty.
 
-void release ()
 Set to null.
 
-const_reference operator* () const
 Return reference to associated value in hash table.
 
-const_pointer operator-> () const
 Return pointer to associated value in hash table.
 
const_accessor ()
 Create empty result.
 
~const_accessor ()
 Destroy result after releasing the underlying reference.
 
- - - -

-Protected Member Functions

-bool is_writer ()
 
- - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Protected Attributes

-nodemy_node
 
-hashcode_t my_hash
 
concurrent_vector (const allocator_type &a=allocator_type())
 Construct empty vector.
 
concurrent_vector (std::initializer_list< T > init_list, const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_vector (const concurrent_vector &vector, const allocator_type &a=allocator_type())
 Copying constructor.
 
concurrent_vector (concurrent_vector &&source)
 Move constructor.
 
concurrent_vector (concurrent_vector &&source, const allocator_type &a)
 
+template<class M >
 concurrent_vector (const concurrent_vector< T, M > &vector, const allocator_type &a=allocator_type())
 Copying constructor for vector with different allocator type.
 
concurrent_vector (size_type n)
 Construction with initial size specified by argument n.
 
concurrent_vector (size_type n, const_reference t, const allocator_type &a=allocator_type())
 Construction with initial size specified by argument n, initialization by copying of t, and given allocator instance.
 
+template<class I >
 concurrent_vector (I first, I last, const allocator_type &a=allocator_type())
 Construction with copying iteration range and given allocator instance.
 
+concurrent_vectoroperator= (const concurrent_vector &vector)
 Assignment.
 
+concurrent_vectoroperator= (concurrent_vector &&other)
 Move assignment.
 
+template<class M >
concurrent_vectoroperator= (const concurrent_vector< T, M > &vector)
 Assignment for vector with different allocator type.
 
+concurrent_vectoroperator= (std::initializer_list< T > init_list)
 Assignment for initializer_list.
 
iterator grow_by (size_type delta)
 Grow by "delta" elements. More...
 
iterator grow_by (size_type delta, const_reference t)
 Grow by "delta" elements using copying constructor. More...
 
template<typename I >
iterator grow_by (I first, I last)
 
iterator grow_by (std::initializer_list< T > init_list)
 
iterator grow_to_at_least (size_type n)
 Append minimal sequence of elements such that size()>=n. More...
 
iterator grow_to_at_least (size_type n, const_reference t)
 
iterator push_back (const_reference item)
 Push item. More...
 
iterator push_back (T &&item)
 Push item, move-aware. More...
 
template<typename... Args>
iterator emplace_back (Args &&...args)
 Push item, create item "in place" with provided arguments. More...
 
reference operator[] (size_type index)
 Get reference to element at given index. More...
 
+const_reference operator[] (size_type index) const
 Get const reference to element at given index.
 
+reference at (size_type index)
 Get reference to element at given index. Throws exceptions on errors.
 
+const_reference at (size_type index) const
 Get const reference to element at given index. Throws exceptions on errors.
 
+range_type range (size_t grainsize=1)
 Get range for iterating with parallel algorithms.
 
+const_range_type range (size_t grainsize=1) const
 Get const range for iterating with parallel algorithms.
 
+size_type size () const
 Return size of vector. It may include elements under construction.
 
+bool empty () const
 Return false if vector is not empty or has elements under construction at least.
 
+size_type capacity () const
 Maximum size to which array can grow without allocating more memory. Concurrent allocations are not included in the value.
 
void reserve (size_type n)
 Allocate enough space to grow to size n without having to allocate more memory later. More...
 
+void resize (size_type n)
 Resize the vector. Not thread-safe.
 
+void resize (size_type n, const_reference t)
 Resize the vector, copy t for new elements. Not thread-safe.
 
+void shrink_to_fit ()
 Optimize memory usage and fragmentation.
 
+size_type max_size () const
 Upper bound on argument to reserve.
 
+iterator begin ()
 start iterator
 
+iterator end ()
 end iterator
 
+const_iterator begin () const
 start const iterator
 
+const_iterator end () const
 end const iterator
 
+const_iterator cbegin () const
 start const iterator
 
+const_iterator cend () const
 end const iterator
 
+reverse_iterator rbegin ()
 reverse start iterator
 
+reverse_iterator rend ()
 reverse end iterator
 
+const_reverse_iterator rbegin () const
 reverse start const iterator
 
+const_reverse_iterator rend () const
 reverse end const iterator
 
+const_reverse_iterator crbegin () const
 reverse start const iterator
 
+const_reverse_iterator crend () const
 reverse end const iterator
 
+reference front ()
 the first item
 
+const_reference front () const
 the first item const
 
+reference back ()
 the last item
 
+const_reference back () const
 the last item const
 
+allocator_type get_allocator () const
 return allocator object
 
+void assign (size_type n, const_reference t)
 assign n items by copying t item
 
+template<class I >
void assign (I first, I last)
 assign range [first, last)
 
+void assign (std::initializer_list< T > init_list)
 assigns an initializer list
 
+void swap (concurrent_vector &vector)
 swap two instances
 
void clear ()
 Clear container while keeping memory allocated. More...
 
~concurrent_vector ()
 Clear and destroy vector.
 
+const
+internal::concurrent_vector_base_v3 & 
internal_vector_base () const
 
+template<typename I >
void copy_range (void *dst, const void *p_type_erased_iterator, size_type n)
 
- - - - + + +

Friends

-class concurrent_hash_map< Key, T, HashCompare, Allocator >
 
-class accessor
 
+template<typename C , typename U >
class internal::vector_iterator
 

Detailed Description

-

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor

+

template<typename T, class A = cache_aligned_allocator<T>>
+class tbb::concurrent_vector< T, A >

+ +

Concurrent vector container.

+
concurrent_vector is a container having the following main properties:
+- It provides random indexed access to its elements. The index of the first element is 0.
+- It ensures safe concurrent growing its size (different threads can safely append new elements).
+- Adding new elements does not invalidate existing iterators and does not change indices of existing items.
+
Compatibility
The class meets all Container Requirements and Reversible Container Requirements from C++ Standard (See ISO/IEC 14882:2003(E), clause 23.1). But it doesn't meet Sequence Requirements due to absence of insert() and erase() methods.
+
Exception Safety
Methods working with memory allocation and/or new elements construction can throw an exception if allocator fails to allocate memory or element's default constructor throws one. Concurrent vector's element of type T must conform to the following requirements:
    +
  • Throwing an exception is forbidden for destructor of T.
  • +
  • Default constructor of T must not throw an exception OR its non-virtual destructor must safely work when its object memory is zero-initialized.
  • +
+Otherwise, the program's behavior is undefined.
+
If an exception happens inside growth or assignment operation, an instance of the vector becomes invalid unless it is stated otherwise in the method documentation. Invalid state means:
    +
  • There are no guarantees that all items were initialized by a constructor. The rest of items is zero-filled, including item where exception happens.
  • +
  • An invalid vector instance cannot be repaired; it is unable to grow anymore.
  • +
  • Size and capacity reported by the vector are incorrect, and calculated as if the failed operation were successful.
  • +
  • Attempt to access not allocated elements using operator[] or iterators results in access violation or segmentation fault exception, and in case of using at() method a C++ exception is thrown.
  • +
+If a concurrent grow operation successfully completes, all the elements it has added to the vector will remain valid and accessible even if one of subsequent grow operations fails.
+
Fragmentation
Unlike an STL vector, a concurrent_vector does not move existing elements if it needs to allocate more memory. The container is divided into a series of contiguous arrays of elements. The first reservation, growth, or assignment operation determines the size of the first array. Using small number of elements as initial size incurs fragmentation that may increase element access time. Internal layout can be optimized by method compact() that merges several smaller arrays into one solid.
+
Changes since TBB 2.1
    +
  • Fixed guarantees of concurrent_vector::size() and grow_to_at_least() methods to assure elements are allocated.
  • +
  • Methods end()/rbegin()/back() are partly thread-safe since they use size() to get the end of vector
  • +
  • Added resize() methods (not thread-safe)
  • +
  • Added cbegin/cend/crbegin/crend methods
  • +
  • Changed return type of methods grow* and push_back to iterator
  • +
+
+
Changes since TBB 2.0
    +
  • Implemented exception-safety guarantees
  • +
  • Added template argument for allocator
  • +
  • Added allocator argument in constructors
  • +
  • Faster index calculation
  • +
  • First growth call specifies a number of segments to be merged in the first allocation.
  • +
  • Fixed memory blow up for swarm of vector's instances of small size
  • +
  • Added grow_by(size_type n, const_reference t) growth using copying constructor to init new items.
  • +
  • Added STL-like constructors.
  • +
  • Added operators ==, < and derivatives
  • +
  • Added at() method, approved for using after an exception was thrown inside the vector
  • +
  • Added get_allocator() method.
  • +
  • Added assign() methods
  • +
  • Added compact() method to defragment first segments
  • +
  • Added swap() method
  • +
  • range() defaults on grainsize = 1 supporting auto grainsize algorithms.
  • +
+
+

Member Function Documentation

+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + +
void tbb::concurrent_vector< T, A >::clear ()
+
+inline
+
+ +

Clear container while keeping memory allocated.

+

To free up the memory, use in conjunction with method compact(). Not thread safe

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + +
iterator tbb::concurrent_vector< T, A >::emplace_back (Args &&... args)
+
+inline
+
+ +

Push item, create item "in place" with provided arguments.

+

Returns iterator pointing to the new element.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
iterator tbb::concurrent_vector< T, A >::grow_by (size_type delta)
+
+inline
+
+ +

Grow by "delta" elements.

+

Returns iterator pointing to the first new element.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
iterator tbb::concurrent_vector< T, A >::grow_by (size_type delta,
const_reference t 
)
+
+inline
+
+ +

Grow by "delta" elements using copying constructor.

+

Returns iterator pointing to the first new element.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+
+template<typename I >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
iterator tbb::concurrent_vector< T, A >::grow_by (first,
last 
)
+
+inline
+
+

Returns iterator pointing to the first new element.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
iterator tbb::concurrent_vector< T, A >::grow_by (std::initializer_list< T > init_list)
+
+inline
+
+

Returns iterator pointing to the first new element.

-

Combines data access, locking, and garbage collection.

-

The documentation for this class was generated from the following file:
    -
  • concurrent_hash_map.h
  • +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
iterator tbb::concurrent_vector< T, A >::grow_to_at_least (size_type n)
+
+inline
+
+ +

Append minimal sequence of elements such that size()>=n.

+

The new elements are default constructed. Blocks until all elements in range [0..n) are allocated. May return while other elements are being constructed by other threads. Returns iterator that points to beginning of appended sequence. If no elements were appended, returns iterator pointing to nth element.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
iterator tbb::concurrent_vector< T, A >::grow_to_at_least (size_type n,
const_reference t 
)
+
+inline
+
+

Analogous to grow_to_at_least( size_type n ) with exception that the new elements are initialized by copying of t instead of default construction.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
reference tbb::concurrent_vector< T, A >::operator[] (size_type index)
+
+inline
+
+ +

Get reference to element at given index.

+

This method is thread-safe for concurrent reads, and also while growing the vector, as long as the calling thread has checked that index < size().

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
iterator tbb::concurrent_vector< T, A >::push_back (const_reference item)
+
+inline
+
+ +

Push item.

+

Returns iterator pointing to the new element.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
iterator tbb::concurrent_vector< T, A >::push_back (T && item)
+
+inline
+
+ +

Push item, move-aware.

+

Returns iterator pointing to the new element.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
void tbb::concurrent_vector< T, A >::reserve (size_type n)
+
+inline
+
+ +

Allocate enough space to grow to size n without having to allocate more memory later.

+

Like most of the methods provided for STL compatibility, this method is not thread safe. The capacity afterwards may be bigger than the requested reservation.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • concurrent_vector.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00059.png b/doc/html/a00059.png index e861a116ac..4ffff4fb10 100644 Binary files a/doc/html/a00059.png and b/doc/html/a00059.png differ diff --git a/doc/html/a00060.html b/doc/html/a00060.html index 166178d23c..167c32720e 100644 --- a/doc/html/a00060.html +++ b/doc/html/a00060.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::continue_msg Class Reference +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference @@ -33,28 +33,107 @@
+
-
tbb::flow::interface8::continue_msg Class Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference
-

An empty class used for messages that mean "I'm done". +

Combines data access, locking, and garbage collection. More...

-

#include <flow_graph.h>

+

#include <concurrent_hash_map.h>

+
+Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor:
+
+
+ + +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor + +
+ + + + + +

+Public Types

+typedef const
+concurrent_hash_map::value_type 
value_type
 Type of value.
 
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+bool empty () const
 True if result is empty.
 
+void release ()
 Set to null.
 
+const_reference operator* () const
 Return reference to associated value in hash table.
 
+const_pointer operator-> () const
 Return pointer to associated value in hash table.
 
const_accessor ()
 Create empty result.
 
~const_accessor ()
 Destroy result after releasing the underlying reference.
 
+ + + +

+Protected Member Functions

+bool is_writer ()
 
+ + + + + +

+Protected Attributes

+nodemy_node
 
+hashcode_t my_hash
 
+ + + + + +

+Friends

+class concurrent_hash_map< Key, T, HashCompare, Allocator >
 
+class accessor
 

Detailed Description

-

An empty class used for messages that mean "I'm done".

+

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor

+ +

Combines data access, locking, and garbage collection.


The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00060.png b/doc/html/a00060.png new file mode 100644 index 0000000000..e861a116ac Binary files /dev/null and b/doc/html/a00060.png differ diff --git a/doc/html/a00061.html b/doc/html/a00061.html index ecb13f4769..64eb0003e9 100644 --- a/doc/html/a00061.html +++ b/doc/html/a00061.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::continue_node< Output > Class Template Reference +tbb::flow::interface8::continue_msg Class Reference @@ -33,137 +33,28 @@
-
-
tbb::flow::interface8::continue_node< Output > Class Template Reference
+
tbb::flow::interface8::continue_msg Class Reference
-

Implements an executable node that supports continue_msg -> Output. +

An empty class used for messages that mean "I'm done". More...

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::continue_node< Output >:
-
-
- - -tbb::flow::interface8::graph_node - -
- - - - - - - - - - - - - - -

-Public Types

-typedef continue_msg input_type
 
-typedef Output output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_type > successor_type
 
-typedef
-internal::continue_input
-< Output > 
fInput_type
 
-typedef
-internal::function_output
-< output_type > 
fOutput_type
 
- - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-template<typename Body >
 continue_node (graph &g, Body body)
 Constructor for executable node with continue_msg -> Output.
 
-template<typename Body >
 continue_node (graph &g, int number_of_predecessors, Body body)
 Constructor for executable node with continue_msg -> Output.
 
continue_node (const continue_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - - - -

-Protected Member Functions

-internal::broadcast_cache
-< output_type > & 
successors ()
 
-void reset_node (reset_flags f)
 
- - - - - - - - - - -

-Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 

Detailed Description

-

template<typename Output>
-class tbb::flow::interface8::continue_node< Output >

- -

Implements an executable node that supports continue_msg -> Output.

+

An empty class used for messages that mean "I'm done".


The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00061.png b/doc/html/a00061.png deleted file mode 100644 index d877596750..0000000000 Binary files a/doc/html/a00061.png and /dev/null differ diff --git a/doc/html/a00062.html b/doc/html/a00062.html index 1b84becab3..f3ec3be148 100644 --- a/doc/html/a00062.html +++ b/doc/html/a00062.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::continue_receiver Class Reference +tbb::flow::interface8::continue_node< Output > Class Template Reference @@ -33,7 +33,7 @@
+List of all members
-
tbb::flow::interface8::continue_receiver Class Referenceabstract
+
tbb::flow::interface8::continue_node< Output > Class Template Reference
-

Base class for receivers of completion messages. +

Implements an executable node that supports continue_msg -> Output. More...

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::continue_receiver:
+Inheritance diagram for tbb::flow::interface8::continue_node< Output >:
- - -tbb::flow::interface8::receiver< continue_msg > + + +tbb::flow::interface8::graph_node
- - - - - - - + + + + + + + + - - + + - - - - - - - - - - - - +internal::function_output
+< output_type >  +

Public Types

-typedef continue_msg input_type
 The input type.
 
-typedef sender< continue_msgpredecessor_type
 The predecessor type for this node.
 
+
+typedef continue_msg input_type
 
+typedef Output output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_type > successor_type
 
typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
+internal::continue_input
+< Output > 
fInput_type
 
typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< continue_msg >
-typedef continue_msg input_type
 The input type of this receiver.
 
-typedef sender< continue_msgpredecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
fOutput_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

Public Member Functions

continue_receiver (int number_of_predecessors=0)
 Constructor.
 
continue_receiver (const continue_receiver &src)
 Copy constructor.
 
-virtual ~continue_receiver ()
 Destructor.
 
-bool register_predecessor (predecessor_type &)
 Increments the trigger threshold.
 
bool remove_predecessor (predecessor_type &)
 Decrements the trigger threshold. More...
 
-built_predecessors_typebuilt_predecessors ()
 
-void internal_add_built_predecessor (predecessor_type &s)
 
-void internal_delete_built_predecessor (predecessor_type &s)
 
-void copy_predecessors (predecessor_list_type &v)
 
-size_t predecessor_count ()
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< continue_msg >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const continue_msg &t)
 Put an item to the receiver.
 
+template<typename Body >
 continue_node (graph &g, Body body)
 Constructor for executable node with continue_msg -> Output.
 
+template<typename Body >
 continue_node (graph &g, int number_of_predecessors, Body body)
 Constructor for executable node with continue_msg -> Output.
 
continue_node (const continue_node &src)
 Copy constructor.
 
+void set_name (const char *name)
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - - - - - - - -

Protected Member Functions

-task * try_put_task (const input_type &)
 
-void reset_receiver (reset_flags f)
 
virtual task * execute ()=0
 Does whatever should happen when the threshold is reached. More...
 
-bool is_continue_receiver ()
 
- - - - - - - - - - - + + + +

-Protected Attributes

-built_predecessors_type my_built_predecessors
 
-spin_mutex my_mutex
 
-int my_predecessor_count
 
-int my_current_count
 
-int my_initial_predecessor_count
 
+internal::broadcast_cache
+< output_type > & 
successors ()
 
+void reset_node (reset_flags f)
 
@@ -194,81 +138,32 @@ template<typename X , typename Y > - - - - - - +

Friends

class internal::round_robin_cache
 
-template<typename U >
class limiter_node
 
-template<typename TT , typename M >
class internal::successor_cache
 
+ + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

Detailed Description

-

Base class for receivers of completion messages.

-

These receivers automatically reset, but cannot be explicitly waited on

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
virtual task* tbb::flow::interface8::continue_receiver::execute ()
-
-protectedpure virtual
-
- -

Does whatever should happen when the threshold is reached.

-

This should be very fast or else spawn a task. This is called while the sender is blocked in the try_put().

- -
-
- -
-
- - - - - -
- - - - - - - - -
bool tbb::flow::interface8::continue_receiver::remove_predecessor (predecessor_type)
-
-inlinevirtual
-
- -

Decrements the trigger threshold.

-

Does not check to see if the removal of the predecessor now makes the current count exceed the new threshold. So removing a predecessor while the graph is active can cause unexpected results.

+

template<typename Output>
+class tbb::flow::interface8::continue_node< Output >

-

Reimplemented from tbb::flow::interface8::receiver< continue_msg >.

- -
-
-
The documentation for this class was generated from the following file:

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00062.png b/doc/html/a00062.png index 1fbcea13e9..d877596750 100644 Binary files a/doc/html/a00062.png and b/doc/html/a00062.png differ diff --git a/doc/html/a00063.html b/doc/html/a00063.html index 8a27c3a84d..01c1954df9 100644 --- a/doc/html/a00063.html +++ b/doc/html/a00063.html @@ -4,7 +4,7 @@ -tbb::internal::critical_section_v4 Class Reference +tbb::flow::interface8::continue_receiver Class Reference @@ -33,67 +33,242 @@
-
tbb::internal::critical_section_v4 Class Reference
+
tbb::flow::interface8::continue_receiver Class Referenceabstract
+ +

Base class for receivers of completion messages. + More...

+ +

#include <flow_graph.h>

-Inheritance diagram for tbb::internal::critical_section_v4:
+Inheritance diagram for tbb::flow::interface8::continue_receiver:
- - + + +tbb::flow::interface8::receiver< continue_msg >
- - - + + + + + + + + + + + + + + + + + + + + + +

-Classes

class  scoped_lock
 

+Public Types

+typedef continue_msg input_type
 The input type.
 
+typedef sender< continue_msgpredecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< continue_msg >
+typedef continue_msg input_type
 The input type of this receiver.
 
+typedef sender< continue_msgpredecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

-void __TBB_EXPORTED_METHOD internal_construct ()
 
-void lock ()
 
-bool try_lock ()
 
-void unlock ()
 
continue_receiver (int number_of_predecessors=0)
 Constructor.
 
continue_receiver (const continue_receiver &src)
 Copy constructor.
 
+virtual ~continue_receiver ()
 Destructor.
 
+bool register_predecessor (predecessor_type &)
 Increments the trigger threshold.
 
bool remove_predecessor (predecessor_type &)
 Decrements the trigger threshold. More...
 
+built_predecessors_typebuilt_predecessors ()
 
+void internal_add_built_predecessor (predecessor_type &s)
 
+void internal_delete_built_predecessor (predecessor_type &s)
 
+void copy_predecessors (predecessor_list_type &v)
 
+size_t predecessor_count ()
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< continue_msg >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const continue_msg &t)
 Put an item to the receiver.
 
- - - - - - - + + + + + + + + + + +

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = true
 

+Protected Member Functions

+task * try_put_task (const input_type &)
 
+void reset_receiver (reset_flags f)
 
virtual task * execute ()=0
 Does whatever should happen when the threshold is reached. More...
 
+bool is_continue_receiver ()
 
+ + + + + + + + + + + +

+Protected Attributes

+built_predecessors_type my_built_predecessors
 
+spin_mutex my_mutex
 
+int my_predecessor_count
 
+int my_current_count
 
+int my_initial_predecessor_count
 
+ + + + + + + + + + + + + + + + +

+Friends

+template<typename R , typename B >
class run_and_put_task
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
+template<typename U >
class limiter_node
 
+template<typename TT , typename M >
class internal::successor_cache
 
+

Detailed Description

+

Base class for receivers of completion messages.

+

These receivers automatically reset, but cannot be explicitly waited on

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
virtual task* tbb::flow::interface8::continue_receiver::execute ()
+
+protectedpure virtual
+
+ +

Does whatever should happen when the threshold is reached.

+

This should be very fast or else spawn a task. This is called while the sender is blocked in the try_put().

+ +
+
+ +
+
+ + + + +
+ + + + + + + + +
bool tbb::flow::interface8::continue_receiver::remove_predecessor (predecessor_type)
+
+inlinevirtual
+
+ +

Decrements the trigger threshold.

+

Does not check to see if the removal of the predecessor now makes the current count exceed the new threshold. So removing a predecessor while the graph is active can cause unexpected results.

+ +

Reimplemented from tbb::flow::interface8::receiver< continue_msg >.

+ +
+

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00063.png b/doc/html/a00063.png index 835e586da2..1fbcea13e9 100644 Binary files a/doc/html/a00063.png and b/doc/html/a00063.png differ diff --git a/doc/html/a00064.html b/doc/html/a00064.html index 38f0907dcb..1e82c01fc1 100644 --- a/doc/html/a00064.html +++ b/doc/html/a00064.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::default_opencl_factory Class Reference +tbb::internal::critical_section_v4 Class Reference @@ -33,47 +33,67 @@
-
tbb::flow::interface8::default_opencl_factory Class Reference
+
tbb::internal::critical_section_v4 Class Reference
-Inheritance diagram for tbb::flow::interface8::default_opencl_factory:
+Inheritance diagram for tbb::internal::critical_section_v4:
- - -tbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter > + +
+ + + +

+Classes

class  scoped_lock
 
- - - - - - - + + + + + + + + +

Public Member Functions

default_opencl_factory (opencl_graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter >
opencl_factory (opencl_graph &g)
 
-bool init (const opencl_device_list &device_list)
 
+void __TBB_EXPORTED_METHOD internal_construct ()
 
+void lock ()
 
+bool try_lock ()
 
+void unlock ()
 
+ + + + + + +

+Static Public Attributes

+static const bool is_rw_mutex = false
 
+static const bool is_recursive_mutex = false
 
+static const bool is_fair_mutex = true
 

The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +
  • critical_section.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00064.png b/doc/html/a00064.png index e66950efeb..835e586da2 100644 Binary files a/doc/html/a00064.png and b/doc/html/a00064.png differ diff --git a/doc/html/a00065.html b/doc/html/a00065.html index abacd66d20..662b2c4eaf 100644 --- a/doc/html/a00065.html +++ b/doc/html/a00065.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::default_opencl_factory_device_filter Struct Reference +tbb::flow::interface8::default_opencl_factory Class Reference @@ -33,31 +33,47 @@
-
tbb::flow::interface8::default_opencl_factory_device_filter Struct Reference
+
tbb::flow::interface8::default_opencl_factory Class Reference
+
+Inheritance diagram for tbb::flow::interface8::default_opencl_factory:
+
+
+ + +tbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter > + +
- - + + + + + + +

Public Member Functions

-opencl_device_list operator() (const opencl_device_list &devices)
 
default_opencl_factory (opencl_graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter >
opencl_factory (opencl_graph &g)
 
+bool init (const opencl_device_list &device_list)
 
-
The documentation for this struct was generated from the following file:
    +
    The documentation for this class was generated from the following file:
    • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00065.png b/doc/html/a00065.png new file mode 100644 index 0000000000..e66950efeb Binary files /dev/null and b/doc/html/a00065.png differ diff --git a/doc/html/a00066.html b/doc/html/a00066.html index 8b1289e002..2cb15552f8 100644 --- a/doc/html/a00066.html +++ b/doc/html/a00066.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::dependency_msg< T, Factory > Class Template Reference +tbb::flow::interface8::default_opencl_factory_device_filter Struct Reference @@ -33,81 +33,31 @@
-
tbb::flow::interface8::dependency_msg< T, Factory > Class Template Reference
+
tbb::flow::interface8::default_opencl_factory_device_filter Struct Reference
- - - -

-Public Types

-typedef T value_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

Public Member Functions

dependency_msg (const T &data)
 
dependency_msg (opencl_graph &g, const T &data)
 
dependency_msg (const T &data, cl_event event)
 
-T & data (bool wait=true)
 
-const T & data (bool wait=true) const
 
dependency_msg (const dependency_msg &dmsg)
 
dependency_msg (dependency_msg &&dmsg)
 
-dependency_msgoperator= (const dependency_msg &dmsg)
 
-cl_event const * get_event () const
 
-void set_event (cl_event e) const
 
-void set_graph (graph &g)
 
-void clear_event () const
 
-template<typename Callback >
void register_callback (Callback c) const
 
operator T & ()
 
operator const T & () const
 
+opencl_device_list operator() (const opencl_device_list &devices)
 
-
The documentation for this class was generated from the following file:
    +
    The documentation for this struct was generated from the following file:
    • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00067.html b/doc/html/a00067.html index 0820202fbd..652ab2f0c9 100644 --- a/doc/html/a00067.html +++ b/doc/html/a00067.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::internal::edge_container< C > Class Template Reference +tbb::flow::interface8::dependency_msg< T, Factory > Class Template Reference @@ -33,59 +33,81 @@
-
tbb::flow::interface8::internal::edge_container< C > Class Template Reference
+
tbb::flow::interface8::dependency_msg< T, Factory > Class Template Reference
- - + +

Public Types

-typedef std::list< C
-*, tbb::tbb_allocator< C * > > 
edge_list_type
 
+typedef T value_type
 
- - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

-void add_edge (C &s)
 
-void delete_edge (C &s)
 
-void copy_edges (edge_list_type &v)
 
-size_t edge_count ()
 
-void clear ()
 
-template<typename S >
void sender_extract (S &s)
 
-template<typename R >
void receiver_extract (R &r)
 
dependency_msg (const T &data)
 
dependency_msg (opencl_graph &g, const T &data)
 
dependency_msg (const T &data, cl_event event)
 
+T & data (bool wait=true)
 
+const T & data (bool wait=true) const
 
dependency_msg (const dependency_msg &dmsg)
 
dependency_msg (dependency_msg &&dmsg)
 
+dependency_msgoperator= (const dependency_msg &dmsg)
 
+cl_event const * get_event () const
 
+void set_event (cl_event e) const
 
+void set_graph (graph &g)
 
+void clear_event () const
 
+template<typename Callback >
void register_callback (Callback c) const
 
operator T & ()
 
operator const T & () const
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00068.html b/doc/html/a00068.html index bd23f2b05c..0a3c86f519 100644 --- a/doc/html/a00068.html +++ b/doc/html/a00068.html @@ -4,7 +4,7 @@ -tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference +tbb::flow::interface8::internal::edge_container< C > Class Template Reference @@ -33,49 +33,59 @@
-
tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference
+
tbb::flow::interface8::internal::edge_container< C > Class Template Reference
-
-Inheritance diagram for tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard:
-
-
- - - -
+ + + +

+Public Types

+typedef std::list< C
+*, tbb::tbb_allocator< C * > > 
edge_list_type
 
- - - - -

Public Member Functions

element_construction_guard (pointer an_element)
 
-void dismiss ()
 
- - - + + + + + + + + + + + + + + + +

-Public Attributes

-pointer element
 
+void add_edge (C &s)
 
+void delete_edge (C &s)
 
+void copy_edges (edge_list_type &v)
 
+size_t edge_count ()
 
+void clear ()
 
+template<typename S >
void sender_extract (S &s)
 
+template<typename R >
void receiver_extract (R &r)
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_vector.h
  • +
    The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00068.png b/doc/html/a00068.png deleted file mode 100644 index 0b05314963..0000000000 Binary files a/doc/html/a00068.png and /dev/null differ diff --git a/doc/html/a00069.html b/doc/html/a00069.html index 5310f7542e..73fb0a122d 100644 --- a/doc/html/a00069.html +++ b/doc/html/a00069.html @@ -4,7 +4,7 @@ -tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference +tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference @@ -33,226 +33,49 @@
-
tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference
+
tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference
- -

The enumerable_thread_specific container. - More...

- -

#include <enumerable_thread_specific.h>

-Inheritance diagram for tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >:
+Inheritance diagram for tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard:
- - + +
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef Allocator allocator_type
 Basic types.
 
-typedef T value_type
 
-typedef T & reference
 
-typedef const T & const_reference
 
-typedef T * pointer
 
-typedef const T * const_pointer
 
-typedef
-internal_collection_type::size_type 
size_type
 
-typedef
-internal_collection_type::difference_type 
difference_type
 
-typedef
-internal::enumerable_thread_specific_iterator
-< internal_collection_type,
-value_type > 
iterator
 
-typedef
-internal::enumerable_thread_specific_iterator
-< internal_collection_type,
-const value_type > 
const_iterator
 
-typedef generic_range_type
-< iterator > 
range_type
 
-typedef generic_range_type
-< const_iterator > 
const_range_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + +

Public Member Functions

enumerable_thread_specific ()
 Default constructor. Each local instance of T is default constructed.
 
-template<typename Finit#if __TBB_ETS_USE_CPP11, typename = typename internal::enable_if<internal::is_callable_no_args<typename internal::strip<Finit>::type>::value>::type #endif>
 enumerable_thread_specific (Finit finit)
 Constructor with initializer functor. Each local instance of T is constructed by T(finit()).
 
enumerable_thread_specific (const T &exemplar)
 Constructor with exemplar. Each local instance of T is copy-constructed from the exemplar.
 
enumerable_thread_specific (T &&exemplar)
 
-template<typename P1 , typename... P, typename = typename internal::enable_if<!internal::is_callable_no_args<typename internal::strip<P1>::type>::value && !internal::is_compatible_ets<T, typename internal::strip<P1>::type>::value && !internal::is_same_type<T, typename internal::strip<P1>::type>::value >::type>
 enumerable_thread_specific (P1 &&arg1, P &&...args)
 Variadic constructor with initializer arguments. Each local instance of T is constructed by T(args...)
 
~enumerable_thread_specific ()
 Destructor.
 
-reference local ()
 returns reference to local, discarding exists
 
-reference local (bool &exists)
 Returns reference to calling thread's local copy, creating one if necessary.
 
-size_type size () const
 Get the number of local copies.
 
-bool empty () const
 true if there have been no local copies created
 
-iterator begin ()
 begin iterator
 
-iterator end ()
 end iterator
 
-const_iterator begin () const
 begin const iterator
 
-const_iterator end () const
 end const iterator
 
-range_type range (size_t grainsize=1)
 Get range for parallel algorithms.
 
-const_range_type range (size_t grainsize=1) const
 Get const range for parallel algorithms.
 
-void clear ()
 Destroys local copies.
 
enumerable_thread_specific (const enumerable_thread_specific &other)
 
-template<typename Alloc , ets_key_usage_type Cachetype>
 enumerable_thread_specific (const enumerable_thread_specific< T, Alloc, Cachetype > &other)
 
enumerable_thread_specific (enumerable_thread_specific &&other)
 
-template<typename Alloc , ets_key_usage_type Cachetype>
 enumerable_thread_specific (enumerable_thread_specific< T, Alloc, Cachetype > &&other)
 
-enumerable_thread_specificoperator= (const enumerable_thread_specific &other)
 
-template<typename Alloc , ets_key_usage_type Cachetype>
enumerable_thread_specificoperator= (const enumerable_thread_specific< T, Alloc, Cachetype > &other)
 
-enumerable_thread_specificoperator= (enumerable_thread_specific &&other)
 
-template<typename Alloc , ets_key_usage_type Cachetype>
enumerable_thread_specificoperator= (enumerable_thread_specific< T, Alloc, Cachetype > &&other)
 
-template<typename combine_func_t >
combine (combine_func_t f_combine)
 
-template<typename combine_func_t >
void combine_each (combine_func_t f_combine)
 
element_construction_guard (pointer an_element)
 
+void dismiss ()
 
- - - - + + +

-Friends

-template<typename U , typename A , ets_key_usage_type C>
class enumerable_thread_specific
 

+Public Attributes

+pointer element
 
-

Detailed Description

-

template<typename T, typename Allocator, ets_key_usage_type ETS_key_type>
-class tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >

- -

The enumerable_thread_specific container.

-
enumerable_thread_specific has the following properties:
-- thread-local copies are lazily created, with default, exemplar or function initialization.
-- thread-local copies do not move (during lifetime, and excepting clear()) so the address of a copy is invariant.
-- the contained objects need not have operator=() defined if combine is not used.
-- enumerable_thread_specific containers may be copy-constructed or assigned.
-- thread-local copies can be managed by hash-table, or can be accessed via TLS storage for speed.
-- outside of parallel contexts, the contents of all thread-local copies are accessible by iterator or using combine or combine_each methods
-
Segmented iterator
When the thread-local objects are containers with input_iterators defined, a segmented iterator may be used to iterate over all the elements of all thread-local copies.
-
combine and combine_each
    -
  • Both methods are defined for enumerable_thread_specific.
  • -
  • combine() requires the type T have operator=() defined.
  • -
  • neither method modifies the contents of the object (though there is no guarantee that the applied methods do not modify the object.)
  • -
  • Both are evaluated in serial context (the methods are assumed to be non-benign.)
  • -
-
-

The documentation for this class was generated from the following file:
    -
  • enumerable_thread_specific.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • concurrent_vector.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00069.png b/doc/html/a00069.png index fba36b8c91..0b05314963 100644 Binary files a/doc/html/a00069.png and b/doc/html/a00069.png differ diff --git a/doc/html/a00070.html b/doc/html/a00070.html index 57c532d0ff..587af4273c 100644 --- a/doc/html/a00070.html +++ b/doc/html/a00070.html @@ -4,7 +4,7 @@ -tbb::filter Class Reference +tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference @@ -33,111 +33,226 @@
-
tbb::filter Class Reference
+
tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference
-

A stage in a pipeline. +

The enumerable_thread_specific container. More...

-

#include <pipeline.h>

+

#include <enumerable_thread_specific.h>

-Inheritance diagram for tbb::filter:
+Inheritance diagram for tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >:
- - -tbb::thread_bound_filter + +
- - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Static Protected Attributes

-static const unsigned char filter_is_serial = 0x1
 The lowest bit 0 is for parallel vs. serial.
 
static const unsigned char filter_is_out_of_order = 0x1<<4
 4th bit distinguishes ordered vs unordered filters. More...
 
-static const unsigned char filter_is_bound = 0x1<<5
 5th bit distinguishes thread-bound and regular filters.
 
-static const unsigned char filter_may_emit_null = 0x1<<6
 6th bit marks input filters emitting small objects
 
static const unsigned char exact_exception_propagation
 7th bit defines exception propagation mode expected by the application. More...
 

+Public Types

+typedef Allocator allocator_type
 Basic types.
 
+typedef T value_type
 
+typedef T & reference
 
+typedef const T & const_reference
 
+typedef T * pointer
 
+typedef const T * const_pointer
 
+typedef
+internal_collection_type::size_type 
size_type
 
+typedef
+internal_collection_type::difference_type 
difference_type
 
+typedef
+internal::enumerable_thread_specific_iterator
+< internal_collection_type,
+value_type > 
iterator
 
+typedef
+internal::enumerable_thread_specific_iterator
+< internal_collection_type,
+const value_type > 
const_iterator
 
+typedef generic_range_type
+< iterator > 
range_type
 
+typedef generic_range_type
+< const_iterator > 
const_range_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

enumerable_thread_specific ()
 Default constructor. Each local instance of T is default constructed.
 
+template<typename Finit#if __TBB_ETS_USE_CPP11, typename = typename internal::enable_if<internal::is_callable_no_args<typename internal::strip<Finit>::type>::value>::type #endif>
 enumerable_thread_specific (Finit finit)
 Constructor with initializer functor. Each local instance of T is constructed by T(finit()).
 
enumerable_thread_specific (const T &exemplar)
 Constructor with exemplar. Each local instance of T is copy-constructed from the exemplar.
 
enumerable_thread_specific (T &&exemplar)
 
+template<typename P1 , typename... P, typename = typename internal::enable_if<!internal::is_callable_no_args<typename internal::strip<P1>::type>::value && !internal::is_compatible_ets<T, typename internal::strip<P1>::type>::value && !internal::is_same_type<T, typename internal::strip<P1>::type>::value >::type>
 enumerable_thread_specific (P1 &&arg1, P &&...args)
 Variadic constructor with initializer arguments. Each local instance of T is constructed by T(args...)
 
~enumerable_thread_specific ()
 Destructor.
 
+reference local ()
 returns reference to local, discarding exists
 
+reference local (bool &exists)
 Returns reference to calling thread's local copy, creating one if necessary.
 
+size_type size () const
 Get the number of local copies.
 
+bool empty () const
 true if there have been no local copies created
 
+iterator begin ()
 begin iterator
 
+iterator end ()
 end iterator
 
+const_iterator begin () const
 begin const iterator
 
+const_iterator end () const
 end const iterator
 
+range_type range (size_t grainsize=1)
 Get range for parallel algorithms.
 
+const_range_type range (size_t grainsize=1) const
 Get const range for parallel algorithms.
 
+void clear ()
 Destroys local copies.
 
enumerable_thread_specific (const enumerable_thread_specific &other)
 
+template<typename Alloc , ets_key_usage_type Cachetype>
 enumerable_thread_specific (const enumerable_thread_specific< T, Alloc, Cachetype > &other)
 
enumerable_thread_specific (enumerable_thread_specific &&other)
 
+template<typename Alloc , ets_key_usage_type Cachetype>
 enumerable_thread_specific (enumerable_thread_specific< T, Alloc, Cachetype > &&other)
 
+enumerable_thread_specificoperator= (const enumerable_thread_specific &other)
 
+template<typename Alloc , ets_key_usage_type Cachetype>
enumerable_thread_specificoperator= (const enumerable_thread_specific< T, Alloc, Cachetype > &other)
 
+enumerable_thread_specificoperator= (enumerable_thread_specific &&other)
 
+template<typename Alloc , ets_key_usage_type Cachetype>
enumerable_thread_specificoperator= (enumerable_thread_specific< T, Alloc, Cachetype > &&other)
 
+template<typename combine_func_t >
combine (combine_func_t f_combine)
 
+template<typename combine_func_t >
void combine_each (combine_func_t f_combine)
 
+ + + +

+Friends

+template<typename U , typename A , ets_key_usage_type C>
class enumerable_thread_specific
 

Detailed Description

-

A stage in a pipeline.

-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const unsigned char tbb::filter::exact_exception_propagation
-
-staticprotected
-
-Initial value:
=
-
#if TBB_USE_CAPTURED_EXCEPTION
-
0x0
-
-

7th bit defines exception propagation mode expected by the application.

- -
-
- -
-
- - - - - -
- - - - -
const unsigned char tbb::filter::filter_is_out_of_order = 0x1<<4
-
-staticprotected
-
+

template<typename T, typename Allocator, ets_key_usage_type ETS_key_type>
+class tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >

-

4th bit distinguishes ordered vs unordered filters.

-

The bit was not set for parallel filters in TBB 2.1 and earlier, but is_ordered() function always treats parallel filters as out of order.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • +

    The enumerable_thread_specific container.

    +
    enumerable_thread_specific has the following properties:
    +- thread-local copies are lazily created, with default, exemplar or function initialization.
    +- thread-local copies do not move (during lifetime, and excepting clear()) so the address of a copy is invariant.
    +- the contained objects need not have operator=() defined if combine is not used.
    +- enumerable_thread_specific containers may be copy-constructed or assigned.
    +- thread-local copies can be managed by hash-table, or can be accessed via TLS storage for speed.
    +- outside of parallel contexts, the contents of all thread-local copies are accessible by iterator or using combine or combine_each methods
    +
    Segmented iterator
    When the thread-local objects are containers with input_iterators defined, a segmented iterator may be used to iterate over all the elements of all thread-local copies.
    +
    combine and combine_each
      +
    • Both methods are defined for enumerable_thread_specific.
    • +
    • combine() requires the type T have operator=() defined.
    • +
    • neither method modifies the contents of the object (though there is no guarantee that the applied methods do not modify the object.)
    • +
    • Both are evaluated in serial context (the methods are assumed to be non-benign.)
    • +
    +
    +

The documentation for this class was generated from the following file:
    +
  • enumerable_thread_specific.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00070.png b/doc/html/a00070.png index a4923e5f6f..fba36b8c91 100644 Binary files a/doc/html/a00070.png and b/doc/html/a00070.png differ diff --git a/doc/html/a00071.html b/doc/html/a00071.html index 509c39cd26..80631afc5a 100644 --- a/doc/html/a00071.html +++ b/doc/html/a00071.html @@ -4,7 +4,7 @@ -tbb::interface6::filter_t< T, U > Class Template Reference +tbb::filter Class Reference @@ -33,67 +33,111 @@
-
tbb::interface6::filter_t< T, U > Class Template Reference
+
tbb::filter Class Reference
-

Class representing a chain of type-safe pipeline filters. +

A stage in a pipeline. More...

#include <pipeline.h>

+
+Inheritance diagram for tbb::filter:
+
+
+ + +tbb::thread_bound_filter + +
- - - - - - - - - - -

-Public Member Functions

filter_t (const filter_t< T, U > &rhs)
 
-template<typename Body >
 filter_t (tbb::filter::mode mode, const Body &body)
 
-void operator= (const filter_t< T, U > &rhs)
 
-void clear ()
 
- - - - - - - - - - + + + + + + + + + + + + + + + +

-Friends

-class internal::pipeline_proxy
 
-template<typename T_ , typename U_ , typename Body >
filter_t< T_, U_ > make_filter (tbb::filter::mode, const Body &)
 Create a filter to participate in parallel_pipeline.
 
-template<typename T_ , typename V_ , typename U_ >
filter_t< T_, U_ > operator& (const filter_t< T_, V_ > &, const filter_t< V_, U_ > &)
 

+Static Protected Attributes

+static const unsigned char filter_is_serial = 0x1
 The lowest bit 0 is for parallel vs. serial.
 
static const unsigned char filter_is_out_of_order = 0x1<<4
 4th bit distinguishes ordered vs unordered filters. More...
 
+static const unsigned char filter_is_bound = 0x1<<5
 5th bit distinguishes thread-bound and regular filters.
 
+static const unsigned char filter_may_emit_null = 0x1<<6
 6th bit marks input filters emitting small objects
 
static const unsigned char exact_exception_propagation
 7th bit defines exception propagation mode expected by the application. More...
 

Detailed Description

-

template<typename T, typename U>
-class tbb::interface6::filter_t< T, U >

+

A stage in a pipeline.

+

Member Data Documentation

+ +
+
+ + + + + +
+ + + + +
const unsigned char tbb::filter::exact_exception_propagation
+
+staticprotected
+
+Initial value:
=
+
#if TBB_USE_CAPTURED_EXCEPTION
+
0x0
+
+

7th bit defines exception propagation mode expected by the application.

+ +
+
+ +
+
+ + + + + +
+ + + + +
const unsigned char tbb::filter::filter_is_out_of_order = 0x1<<4
+
+staticprotected
+
+ +

4th bit distinguishes ordered vs unordered filters.

+

The bit was not set for parallel filters in TBB 2.1 and earlier, but is_ordered() function always treats parallel filters as out of order.

-

Class representing a chain of type-safe pipeline filters.

-

The documentation for this class was generated from the following file:
    +
+
+
The documentation for this class was generated from the following file:
  • pipeline.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00071.png b/doc/html/a00071.png new file mode 100644 index 0000000000..a4923e5f6f Binary files /dev/null and b/doc/html/a00071.png differ diff --git a/doc/html/a00072.html b/doc/html/a00072.html index eff985502d..83a959ad59 100644 --- a/doc/html/a00072.html +++ b/doc/html/a00072.html @@ -4,7 +4,7 @@ -tbb::final_scan_tag Struct Reference +tbb::interface6::filter_t< T, U > Class Template Reference @@ -33,38 +33,67 @@
-
tbb::final_scan_tag Struct Reference
+
tbb::interface6::filter_t< T, U > Class Template Reference
-

Used to indicate that the final scan is being performed. +

Class representing a chain of type-safe pipeline filters. More...

-

#include <parallel_scan.h>

+

#include <pipeline.h>

- - - + + + + + + + + + + +

-Static Public Member Functions

-static bool is_final_scan ()
 

+Public Member Functions

filter_t (const filter_t< T, U > &rhs)
 
+template<typename Body >
 filter_t (tbb::filter::mode mode, const Body &body)
 
+void operator= (const filter_t< T, U > &rhs)
 
+void clear ()
 
+ + + + + + + + + +

+Friends

+class internal::pipeline_proxy
 
+template<typename T_ , typename U_ , typename Body >
filter_t< T_, U_ > make_filter (tbb::filter::mode, const Body &)
 Create a filter to participate in parallel_pipeline.
 
+template<typename T_ , typename V_ , typename U_ >
filter_t< T_, U_ > operator& (const filter_t< T_, V_ > &, const filter_t< V_, U_ > &)
 

Detailed Description

-

Used to indicate that the final scan is being performed.

-

The documentation for this struct was generated from the following file:
    -
  • parallel_scan.h
  • +

    template<typename T, typename U>
    +class tbb::interface6::filter_t< T, U >

    + +

    Class representing a chain of type-safe pipeline filters.

    +

    The documentation for this class was generated from the following file:
      +
    • pipeline.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00073.html b/doc/html/a00073.html index 4fdc284b5e..9a70b90644 100644 --- a/doc/html/a00073.html +++ b/doc/html/a00073.html @@ -4,7 +4,7 @@ -tbb::interface6::fixed_pool Class Reference +tbb::final_scan_tag Struct Reference @@ -33,44 +33,38 @@
-
tbb::interface6::fixed_pool Class Reference
+
tbb::final_scan_tag Struct Reference
-
-Inheritance diagram for tbb::interface6::fixed_pool:
-
-
- - - -
+ +

Used to indicate that the final scan is being performed. + More...

+ +

#include <parallel_scan.h>

- - - - - - - + + +

-Public Member Functions

fixed_pool (void *buf, size_t size)
 construct pool with underlying allocator
 
~fixed_pool ()
 destroy pool
 

+Static Public Member Functions

+static bool is_final_scan ()
 
-
The documentation for this class was generated from the following file:
    -
  • memory_pool.h
  • +

    Detailed Description

    +

    Used to indicate that the final scan is being performed.

    +

    The documentation for this struct was generated from the following file:
      +
    • parallel_scan.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00074.html b/doc/html/a00074.html index 6dd164f063..6fa2a14fe5 100644 --- a/doc/html/a00074.html +++ b/doc/html/a00074.html @@ -4,7 +4,7 @@ -tbb::interface6::flattened2d< Container > Class Template Reference +tbb::interface6::fixed_pool Class Reference @@ -33,90 +33,44 @@
-
tbb::interface6::flattened2d< Container > Class Template Reference
+
tbb::interface6::fixed_pool Class Reference
+
+Inheritance diagram for tbb::interface6::fixed_pool:
+
+
+ + + +
- - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef conval_type::size_type size_type
 Basic types.
 
-typedef
-conval_type::difference_type 
difference_type
 
-typedef conval_type::allocator_type allocator_type
 
-typedef conval_type::value_type value_type
 
-typedef conval_type::reference reference
 
-typedef
-conval_type::const_reference 
const_reference
 
-typedef conval_type::pointer pointer
 
-typedef conval_type::const_pointer const_pointer
 
-typedef
-internal::segmented_iterator
-< Container, value_type > 
iterator
 
-typedef
-internal::segmented_iterator
-< Container, const value_type > 
const_iterator
 
- - - - - - - - - - - - - - + + + + + +

Public Member Functions

flattened2d (const Container &c, typename Container::const_iterator b, typename Container::const_iterator e)
 
flattened2d (const Container &c)
 
-iterator begin ()
 
-iterator end ()
 
-const_iterator begin () const
 
-const_iterator end () const
 
-size_type size () const
 
fixed_pool (void *buf, size_t size)
 construct pool with underlying allocator
 
~fixed_pool ()
 destroy pool
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00073.png b/doc/html/a00074.png similarity index 100% rename from doc/html/a00073.png rename to doc/html/a00074.png diff --git a/doc/html/a00075.html b/doc/html/a00075.html index 229cd82d69..d081163110 100644 --- a/doc/html/a00075.html +++ b/doc/html/a00075.html @@ -4,7 +4,7 @@ -tbb::interface6::flow_control Class Reference +tbb::interface6::flattened2d< Container > Class Template Reference @@ -33,46 +33,90 @@
-
tbb::interface6::flow_control Class Reference
+
tbb::interface6::flattened2d< Container > Class Template Reference
- -

input_filter control to signal end-of-input for parallel_pipeline - More...

- -

#include <pipeline.h>

+ + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef conval_type::size_type size_type
 Basic types.
 
+typedef
+conval_type::difference_type 
difference_type
 
+typedef conval_type::allocator_type allocator_type
 
+typedef conval_type::value_type value_type
 
+typedef conval_type::reference reference
 
+typedef
+conval_type::const_reference 
const_reference
 
+typedef conval_type::pointer pointer
 
+typedef conval_type::const_pointer const_pointer
 
+typedef
+internal::segmented_iterator
+< Container, value_type > 
iterator
 
+typedef
+internal::segmented_iterator
+< Container, const value_type > 
const_iterator
 
- - -

Public Member Functions

-void stop ()
 
- - - - + + + + + + + + + + + + + +

-Friends

-template<typename T , typename U , typename Body >
class internal::concrete_filter
 
flattened2d (const Container &c, typename Container::const_iterator b, typename Container::const_iterator e)
 
flattened2d (const Container &c)
 
+iterator begin ()
 
+iterator end ()
 
+const_iterator begin () const
 
+const_iterator end () const
 
+size_type size () const
 
-

Detailed Description

-

input_filter control to signal end-of-input for parallel_pipeline

-

The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • +
    The documentation for this class was generated from the following file:
      +
    • enumerable_thread_specific.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00076.html b/doc/html/a00076.html index 41a8790722..6f474de0d7 100644 --- a/doc/html/a00076.html +++ b/doc/html/a00076.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Class Template Reference +tbb::interface6::flow_control Class Reference @@ -33,138 +33,46 @@
-
tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Class Template Reference
+
tbb::interface6::flow_control Class Reference
-

Implements a function node that supports Input -> Output. +

input_filter control to signal end-of-input for parallel_pipeline More...

-

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >:
-
-
- - -tbb::flow::interface8::graph_node - -
+

#include <pipeline.h>

- - - - - - - - - - - - - - - -

-Public Types

-typedef Input input_type
 
-typedef Output output_type
 
-typedef sender< input_type > predecessor_type
 
-typedef receiver< output_type > successor_type
 
-typedef
-internal::function_input
-< input_type, output_type,
-Allocator > 
fInput_type
 
-typedef
-internal::function_input_queue
-< input_type, Allocator > 
input_queue_type
 
-typedef
-internal::function_output
-< output_type > 
fOutput_type
 
- - - - - - - - - - - - - - -

Public Member Functions

-template<typename Body >
 function_node (graph &g, size_t concurrency, Body body)
 Constructor.
 
function_node (const function_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - - - + +

-Protected Member Functions

-internal::broadcast_cache
-< output_type > & 
successors ()
 
-void reset_node (reset_flags f)
 
+void stop ()
 
- - - - - - - - - -

Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
+template<typename T , typename U , typename Body >
class internal::concrete_filter
 

Detailed Description

-

template<typename Input, typename Output = continue_msg, typename Policy = queueing, typename Allocator = cache_aligned_allocator<Input>>
-class tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >

- -

Implements a function node that supports Input -> Output.

+

input_filter control to signal end-of-input for parallel_pipeline


The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00077.html b/doc/html/a00077.html index f099a2237e..ae3c938303 100644 --- a/doc/html/a00077.html +++ b/doc/html/a00077.html @@ -4,7 +4,7 @@ -tbb::interface9::global_control Class Reference +tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Class Template Reference @@ -33,47 +33,146 @@
-
tbb::interface9::global_control Class Reference
+
tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Class Template Reference
+ +

Implements a function node that supports Input -> Output. + More...

+ +

#include <flow_graph.h>

+
+Inheritance diagram for tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >:
+
+
+ + +tbb::flow::interface8::graph_node + +
- - + + + + + + + + + + + + + + + + + +

Public Types

enum  parameter { max_allowed_parallelism, -thread_stack_size, -parameter_max - }
 
+typedef Input input_type
 
+typedef Output output_type
 
+typedef sender< input_type > predecessor_type
 
+typedef receiver< output_type > successor_type
 
+typedef
+internal::function_input
+< input_type, output_type,
+Allocator > 
fInput_type
 
+typedef
+internal::function_input_queue
+< input_type, Allocator > 
input_queue_type
 
+typedef
+internal::function_output
+< output_type > 
fOutput_type
 
+typedef
+fInput_type::predecessor_list_type 
predecessor_list_type
 
+typedef
+fOutput_type::successor_list_type 
successor_list_type
 
- - + + + + + + + + + + + + + +

Public Member Functions

global_control (parameter p, size_t value)
 
+template<typename Body >
 function_node (graph &g, size_t concurrency, Body body)
 Constructor.
 
function_node (const function_node &src)
 Copy constructor.
 
+void set_name (const char *name)
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - + + + + + +

-Static Public Member Functions

-static size_t active_value (parameter p)
 

+Protected Member Functions

+internal::broadcast_cache
+< output_type > & 
successors ()
 
+void reset_node (reset_flags f)
 
+ + + + + + + + + + +

+Friends

+template<typename R , typename B >
class run_and_put_task
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
+ + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 
-
The documentation for this class was generated from the following file:
    -
  • global_control.h
  • +

    Detailed Description

    +

    template<typename Input, typename Output = continue_msg, typename Policy = queueing, typename Allocator = cache_aligned_allocator<Input>>
    +class tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >

    + +

    Implements a function node that supports Input -> Output.

    +

    The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00076.png b/doc/html/a00077.png similarity index 100% rename from doc/html/a00076.png rename to doc/html/a00077.png diff --git a/doc/html/a00078.html b/doc/html/a00078.html index aea909df6a..038f29abaa 100644 --- a/doc/html/a00078.html +++ b/doc/html/a00078.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::graph Class Reference +tbb::interface9::global_control Class Reference @@ -33,325 +33,47 @@
-
tbb::flow::interface8::graph Class Reference
+
tbb::interface9::global_control Class Reference
- -

The graph class. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::graph:
-
-
- - -tbb::flow::interface8::opencl_graph - -
- - - - + +

Public Types

-typedef graph_iterator< graph,
-graph_node
iterator
 
-typedef graph_iterator< const
-graph, const graph_node
const_iterator
 
enum  parameter { max_allowed_parallelism, +thread_stack_size, +parameter_max + }
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

Public Member Functions

graph ()
 Constructs a graph with isolated task_group_context.
 
graph (task_group_context &use_this_context)
 Constructs a graph with use_this_context as context.
 
 ~graph ()
 Destroys the graph. More...
 
-void set_name (const char *name)
 
void increment_wait_count ()
 Used to register that an external entity may still interact with the graph. More...
 
void decrement_wait_count ()
 Deregisters an external entity that may have interacted with the graph. More...
 
template<typename Receiver , typename Body >
void run (Receiver &r, Body body)
 Spawns a task that runs a body and puts its output to a specific receiver. More...
 
template<typename Body >
void run (Body body)
 Spawns a task that runs a function object. More...
 
void wait_for_all ()
 Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls. More...
 
-task * root_task ()
 Returns the root task of the graph.
 
-void set_active (bool a=true)
 
-bool is_active ()
 
-void add_task_to_reset_list (task *tp)
 
-iterator begin ()
 start iterator
 
-iterator end ()
 end iterator
 
-const_iterator begin () const
 start const iterator
 
-const_iterator end () const
 end const iterator
 
-const_iterator cbegin () const
 start const iterator
 
-const_iterator cend () const
 end const iterator
 
-bool is_cancelled ()
 return status of graph execution
 
-bool exception_thrown ()
 
-void reset (reset_flags f=rf_reset_protocol)
 
global_control (parameter p, size_t value)
 
- - - - - - - - - + + +

-Friends

-class graph_node
 
-template<typename C , typename N >
class graph_iterator
 
-template<typename Input , typename Output , typename Policy , typename Allocator >
class async_node
 

+Static Public Member Functions

+static size_t active_value (parameter p)
 
-

Detailed Description

-

The graph class.

-

This class serves as a handle to the graph

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
tbb::flow::interface8::graph::~graph ()
-
-inline
-
- -

Destroys the graph.

-

Calls wait_for_all, then destroys the root task and context.

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
void tbb::flow::interface8::graph::decrement_wait_count ()
-
-inline
-
- -

Deregisters an external entity that may have interacted with the graph.

-

The graph will not return from wait_for_all until all the number of decrement_wait_count calls matches the number of increment_wait_count calls.

- -
-
- -
-
- - - - - -
- - - - - - - -
void tbb::flow::interface8::graph::increment_wait_count ()
-
-inline
-
- -

Used to register that an external entity may still interact with the graph.

-

The graph will not return from wait_for_all until a matching number of decrement_wait_count calls is made.

- -
-
- -
-
-
-template<typename Receiver , typename Body >
- - - - - -
- - - - - - - - - - - - - - - - - - -
void tbb::flow::interface8::graph::run (Receiver & r,
Body body 
)
-
-inline
-
- -

Spawns a task that runs a body and puts its output to a specific receiver.

-

The task is spawned as a child of the graph. This is useful for running tasks that need to block a wait_for_all() on the graph. For example a one-off source.

- -
-
- -
-
-
-template<typename Body >
- - - - - -
- - - - - - - - -
void tbb::flow::interface8::graph::run (Body body)
-
-inline
-
- -

Spawns a task that runs a function object.

-

The task is spawned as a child of the graph. This is useful for running tasks that need to block a wait_for_all() on the graph. For example a one-off source.

- -
-
- -
-
- - - - - -
- - - - - - - -
void tbb::flow::interface8::graph::wait_for_all ()
-
-inline
-
- -

Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls.

-

The waiting thread will go off and steal work while it is block in the wait_for_all.

- -
-

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00079.html b/doc/html/a00079.html index f835f746e9..ab4d98aecd 100644 --- a/doc/html/a00079.html +++ b/doc/html/a00079.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference +tbb::flow::interface8::graph Class Reference @@ -33,96 +33,325 @@
-
tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference
+
tbb::flow::interface8::graph Class Reference
+ +

The graph class. + More...

+ +

#include <flow_graph.h>

+
+Inheritance diagram for tbb::flow::interface8::graph:
+
+
+ + +tbb::flow::interface8::opencl_graph + +
- - - - - - - - - - - - + + + +

Public Types

-typedef size_t size_type
 
-typedef GraphNodeType value_type
 
-typedef GraphNodeType * pointer
 
-typedef GraphNodeType & reference
 
-typedef const GraphNodeType & const_reference
 
-typedef std::forward_iterator_tag iterator_category
 
+typedef graph_iterator< graph,
+graph_node
iterator
 
+typedef graph_iterator< const
+graph, const graph_node
const_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

graph_iterator ()
 Default constructor.
 
graph_iterator (const graph_iterator &other)
 Copy constructor.
 
-graph_iteratoroperator= (const graph_iterator &other)
 Assignment.
 
-reference operator* () const
 Dereference.
 
-pointer operator-> () const
 Dereference.
 
-bool operator== (const graph_iterator &other) const
 Equality.
 
-bool operator!= (const graph_iterator &other) const
 Inequality.
 
-graph_iteratoroperator++ ()
 Pre-increment.
 
-graph_iterator operator++ (int)
 Post-increment.
 
graph ()
 Constructs a graph with isolated task_group_context.
 
graph (task_group_context &use_this_context)
 Constructs a graph with use_this_context as context.
 
 ~graph ()
 Destroys the graph. More...
 
+void set_name (const char *name)
 
void increment_wait_count ()
 Used to register that an external entity may still interact with the graph. More...
 
void decrement_wait_count ()
 Deregisters an external entity that may have interacted with the graph. More...
 
template<typename Receiver , typename Body >
void run (Receiver &r, Body body)
 Spawns a task that runs a body and puts its output to a specific receiver. More...
 
template<typename Body >
void run (Body body)
 Spawns a task that runs a function object. More...
 
void wait_for_all ()
 Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls. More...
 
+task * root_task ()
 Returns the root task of the graph.
 
+void set_active (bool a=true)
 
+bool is_active ()
 
+void add_task_to_reset_list (task *tp)
 
+iterator begin ()
 start iterator
 
+iterator end ()
 end iterator
 
+const_iterator begin () const
 start const iterator
 
+const_iterator end () const
 end const iterator
 
+const_iterator cbegin () const
 start const iterator
 
+const_iterator cend () const
 end const iterator
 
+bool is_cancelled ()
 return status of graph execution
 
+bool exception_thrown ()
 
+void reset (reset_flags f=rf_reset_protocol)
 
- - + + + + + +

Friends

-class graph
 
class graph_node
 
+template<typename C , typename N >
class graph_iterator
 
+template<typename Input , typename Output , typename Policy , typename Allocator >
class async_node
 
+

Detailed Description

+

The graph class.

+

This class serves as a handle to the graph

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + +
tbb::flow::interface8::graph::~graph ()
+
+inline
+
+ +

Destroys the graph.

+

Calls wait_for_all, then destroys the root task and context.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
void tbb::flow::interface8::graph::decrement_wait_count ()
+
+inline
+
+ +

Deregisters an external entity that may have interacted with the graph.

+

The graph will not return from wait_for_all until all the number of decrement_wait_count calls matches the number of increment_wait_count calls.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
void tbb::flow::interface8::graph::increment_wait_count ()
+
+inline
+
+ +

Used to register that an external entity may still interact with the graph.

+

The graph will not return from wait_for_all until a matching number of decrement_wait_count calls is made.

+ +
+
+ +
+
+
+template<typename Receiver , typename Body >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void tbb::flow::interface8::graph::run (Receiver & r,
Body body 
)
+
+inline
+
+ +

Spawns a task that runs a body and puts its output to a specific receiver.

+

The task is spawned as a child of the graph. This is useful for running tasks that need to block a wait_for_all() on the graph. For example a one-off source.

+ +
+
+ +
+
+
+template<typename Body >
+ + + + + +
+ + + + + + + + +
void tbb::flow::interface8::graph::run (Body body)
+
+inline
+
+ +

Spawns a task that runs a function object.

+

The task is spawned as a child of the graph. This is useful for running tasks that need to block a wait_for_all() on the graph. For example a one-off source.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
void tbb::flow::interface8::graph::wait_for_all ()
+
+inline
+
+ +

Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls.

+

The waiting thread will go off and steal work while it is block in the wait_for_all.

+ +
+

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00078.png b/doc/html/a00079.png similarity index 100% rename from doc/html/a00078.png rename to doc/html/a00079.png diff --git a/doc/html/a00080.html b/doc/html/a00080.html index 4fd53a4037..2960e13386 100644 --- a/doc/html/a00080.html +++ b/doc/html/a00080.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::graph_node Class Reference +tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference @@ -33,98 +33,96 @@
-
tbb::flow::interface8::graph_node Class Referenceabstract
+
tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference
- -

The base of all graph nodes. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::graph_node:
-
-
- - -tbb::flow::interface8::multifunction_node< indexer_node_output_type, kernel_input_tuple > -tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator > -tbb::flow::interface8::multifunction_node< kernel_input_tuple, output_tuple > -tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator > -tbb::flow::interface8::broadcast_node< T > -tbb::flow::interface8::buffer_node< T, A > -tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > -tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > -tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > -tbb::flow::interface8::continue_node< Output > -tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > -tbb::flow::interface8::limiter_node< T > -tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > -tbb::flow::interface8::overwrite_node< T > -tbb::flow::interface8::source_node< Output > - -
+ + + + + + + + + + + + + +

+Public Types

+typedef size_t size_type
 
+typedef GraphNodeType value_type
 
+typedef GraphNodeType * pointer
 
+typedef GraphNodeType & reference
 
+typedef const GraphNodeType & const_reference
 
+typedef std::forward_iterator_tag iterator_category
 
- - - - - - -

Public Member Functions

graph_node (graph &g)
 
-virtual void set_name (const char *name)=0
 
-virtual void extract ()=0
 
- - - -

-Protected Member Functions

-virtual void reset_node (reset_flags f=rf_reset_protocol)=0
 
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Protected Attributes

-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
graph_iterator ()
 Default constructor.
 
graph_iterator (const graph_iterator &other)
 Copy constructor.
 
+graph_iteratoroperator= (const graph_iterator &other)
 Assignment.
 
+reference operator* () const
 Dereference.
 
+pointer operator-> () const
 Dereference.
 
+bool operator== (const graph_iterator &other) const
 Equality.
 
+bool operator!= (const graph_iterator &other) const
 Inequality.
 
+graph_iteratoroperator++ ()
 Pre-increment.
 
+graph_iterator operator++ (int)
 Post-increment.
 
- - - + +

Friends

class graph
 
-template<typename C , typename N >
class graph_iterator
 
+class graph_node
 
-

Detailed Description

-

The base of all graph nodes.

-

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00081.html b/doc/html/a00081.html index 81d303a3d3..5f8dac20a3 100644 --- a/doc/html/a00081.html +++ b/doc/html/a00081.html @@ -4,7 +4,7 @@ -tbb::internal::tbb_thread_v3::id Class Reference +tbb::flow::interface8::graph_node Class Reference @@ -33,64 +33,98 @@
-
tbb::internal::tbb_thread_v3::id Class Reference
+
tbb::flow::interface8::graph_node Class Referenceabstract
+ +

The base of all graph nodes. + More...

+ +

#include <flow_graph.h>

+
+Inheritance diagram for tbb::flow::interface8::graph_node:
+
+
+ + +tbb::flow::interface8::multifunction_node< indexer_node_output_type, kernel_input_tuple > +tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator > +tbb::flow::interface8::multifunction_node< kernel_input_tuple, output_tuple > +tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator > +tbb::flow::interface8::broadcast_node< T > +tbb::flow::interface8::buffer_node< T, A > +tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > +tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > +tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > +tbb::flow::interface8::continue_node< Output > +tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > +tbb::flow::interface8::limiter_node< T > +tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > +tbb::flow::interface8::overwrite_node< T > +tbb::flow::interface8::source_node< Output > + +
+ + + + + + + +

+Public Member Functions

graph_node (graph &g)
 
+virtual void set_name (const char *name)=0
 
+virtual void extract ()=0
 
+ + + +

+Protected Member Functions

+virtual void reset_node (reset_flags f=rf_reset_protocol)=0
 
+ + + + + + + +

+Protected Attributes

+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 
- - - - - - - - - - - - - - - - - - - - - - - + + + + +

Friends

-class tbb_thread_v3
 
-bool operator== (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
-bool operator!= (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
-bool operator< (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
-bool operator<= (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
-bool operator> (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
-bool operator>= (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
-template<class charT , class traits >
std::basic_ostream< charT,
-traits > & 
operator<< (std::basic_ostream< charT, traits > &out, tbb_thread_v3::id id)
 
-tbb_thread_v3::id
-__TBB_EXPORTED_FUNC 
thread_get_id_v3 ()
 
-size_t tbb_hasher (const tbb_thread_v3::id &id)
 
-id atomic_compare_and_swap (id &location, const id &value, const id &comparand)
 
+class graph
 
+template<typename C , typename N >
class graph_iterator
 
-
The documentation for this class was generated from the following file:
    -
  • tbb_thread.h
  • +

    Detailed Description

    +

    The base of all graph nodes.

    +

    The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00080.png b/doc/html/a00081.png similarity index 100% rename from doc/html/a00080.png rename to doc/html/a00081.png diff --git a/doc/html/a00082.html b/doc/html/a00082.html index 44162f79e9..2a489d9b95 100644 --- a/doc/html/a00082.html +++ b/doc/html/a00082.html @@ -4,7 +4,7 @@ -tbb::improper_lock Class Reference +tbb::internal::tbb_thread_v3::id Class Reference @@ -33,46 +33,64 @@
-
tbb::improper_lock Class Reference
+
tbb::internal::tbb_thread_v3::id Class Reference
- -

Exception for PPL locks. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::improper_lock:
-
-
- - - -
- - - + + + + + + + + + + + + + + + + + + + + + + + +

-Public Member Functions

-const char * what () const throw ()
 

+Friends

+class tbb_thread_v3
 
+bool operator== (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
+bool operator!= (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
+bool operator< (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
+bool operator<= (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
+bool operator> (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
+bool operator>= (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
+template<class charT , class traits >
std::basic_ostream< charT,
+traits > & 
operator<< (std::basic_ostream< charT, traits > &out, tbb_thread_v3::id id)
 
+tbb_thread_v3::id
+__TBB_EXPORTED_FUNC 
thread_get_id_v3 ()
 
+size_t tbb_hasher (const tbb_thread_v3::id &id)
 
+id atomic_compare_and_swap (id &location, const id &value, const id &comparand)
 
-

Detailed Description

-

Exception for PPL locks.

-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +
    The documentation for this class was generated from the following file:
      +
    • tbb_thread.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00082.png b/doc/html/a00082.png deleted file mode 100644 index 7f4f5571e6..0000000000 Binary files a/doc/html/a00082.png and /dev/null differ diff --git a/doc/html/a00083.html b/doc/html/a00083.html index 104443dba5..a90f072d75 100644 --- a/doc/html/a00083.html +++ b/doc/html/a00083.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Class Template Reference +tbb::improper_lock Class Reference @@ -33,63 +33,46 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Class Template Reference
+
tbb::improper_lock Class Reference
+ +

Exception for PPL locks. + More...

+ +

#include <tbb_exception.h>

-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >:
+Inheritance diagram for tbb::improper_lock:
- - + +
- - - - - - - -

-Public Types

-typedef tuple< T0, T1, T2, T3,
-T4, T5, T6, T7, T8, T9 > 
InputTuple
 
-typedef internal::tagged_msg
-< size_t, T0, T1, T2, T3, T4,
-T5, T6, T7, T8, T9 > 
output_type
 
-typedef
-internal::unfolded_indexer_node
-< InputTuple > 
unfolded_type
 
- - - - - - + +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
-void set_name (const char *name)
 
+const char * what () const throw ()
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +

    Detailed Description

    +

    Exception for PPL locks.

    +

    The documentation for this class was generated from the following file:
      +
    • tbb_exception.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00083.png b/doc/html/a00083.png index a2a0edf6e8..7f4f5571e6 100644 Binary files a/doc/html/a00083.png and b/doc/html/a00083.png differ diff --git a/doc/html/a00084.html b/doc/html/a00084.html index e1f7b85047..b5c92e5570 100644 --- a/doc/html/a00084.html +++ b/doc/html/a00084.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Class Template Reference @@ -33,61 +33,63 @@
-
tbb::flow::interface8::indexer_node< T0 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0 > InputTuple
 
+
+typedef tuple< T0, T1, T2, T3,
+T4, T5, T6, T7, T8, T9 > 
InputTuple
 
typedef internal::tagged_msg
-< size_t, T0 > 
output_type
 
+< size_t, T0, T1, T2, T3, T4,
+T5, T6, T7, T8, T9 > 
output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00084.png b/doc/html/a00084.png index fe6adbe591..a2a0edf6e8 100644 Binary files a/doc/html/a00084.png and b/doc/html/a00084.png differ diff --git a/doc/html/a00085.html b/doc/html/a00085.html index 2129ac54c7..9853d04076 100644 --- a/doc/html/a00085.html +++ b/doc/html/a00085.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1 > Class Template Reference +tbb::flow::interface8::indexer_node< T0 > Class Template Reference @@ -33,61 +33,61 @@
-
tbb::flow::interface8::indexer_node< T0, T1 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0, T1 > InputTuple
 
+
+typedef tuple< T0 > InputTuple
 
typedef internal::tagged_msg
-< size_t, T0, T1 > 
output_type
 
+< size_t, T0 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00085.png b/doc/html/a00085.png index 1e6fd1b951..fe6adbe591 100644 Binary files a/doc/html/a00085.png and b/doc/html/a00085.png differ diff --git a/doc/html/a00086.html b/doc/html/a00086.html index 40880fbad0..2ae9fb4026 100644 --- a/doc/html/a00086.html +++ b/doc/html/a00086.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1 > Class Template Reference @@ -33,61 +33,61 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0, T1, T2 > InputTuple
 
+
+typedef tuple< T0, T1 > InputTuple
 
typedef internal::tagged_msg
-< size_t, T0, T1, T2 > 
output_type
 
+< size_t, T0, T1 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00086.png b/doc/html/a00086.png index 7bee186442..1e6fd1b951 100644 Binary files a/doc/html/a00086.png and b/doc/html/a00086.png differ diff --git a/doc/html/a00087.html b/doc/html/a00087.html index cda0f8af6a..eb032f46d3 100644 --- a/doc/html/a00087.html +++ b/doc/html/a00087.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2 > Class Template Reference @@ -33,61 +33,61 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0, T1, T2, T3 > InputTuple
 
+
+typedef tuple< T0, T1, T2 > InputTuple
 
typedef internal::tagged_msg
-< size_t, T0, T1, T2, T3 > 
output_type
 
+< size_t, T0, T1, T2 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00087.png b/doc/html/a00087.png index bf8a089938..7bee186442 100644 Binary files a/doc/html/a00087.png and b/doc/html/a00087.png differ diff --git a/doc/html/a00088.html b/doc/html/a00088.html index 8ad0a3b966..090890fbfa 100644 --- a/doc/html/a00088.html +++ b/doc/html/a00088.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Class Template Reference @@ -33,61 +33,61 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0, T1, T2, T3, T4 > InputTuple
 
+
+typedef tuple< T0, T1, T2, T3 > InputTuple
 
typedef internal::tagged_msg
-< size_t, T0, T1, T2, T3, T4 > 
output_type
 
+< size_t, T0, T1, T2, T3 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00088.png b/doc/html/a00088.png index e8c28bfb87..bf8a089938 100644 Binary files a/doc/html/a00088.png and b/doc/html/a00088.png differ diff --git a/doc/html/a00089.html b/doc/html/a00089.html index 71edc04558..bec42aa9b1 100644 --- a/doc/html/a00089.html +++ b/doc/html/a00089.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > Class Template Reference @@ -33,63 +33,61 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0, T1, T2, T3,
-T4, T5 > 
InputTuple
 
+
+typedef tuple< T0, T1, T2, T3, T4 > InputTuple
 
typedef internal::tagged_msg
-< size_t, T0, T1, T2, T3, T4,
-T5 > 
output_type
 
+< size_t, T0, T1, T2, T3, T4 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00089.png b/doc/html/a00089.png index e3d1565f5b..e8c28bfb87 100644 Binary files a/doc/html/a00089.png and b/doc/html/a00089.png differ diff --git a/doc/html/a00090.html b/doc/html/a00090.html index 90146895ad..7e596b4f09 100644 --- a/doc/html/a00090.html +++ b/doc/html/a00090.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > Class Template Reference @@ -33,63 +33,63 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >:
- - + +
- - - + + - - + + - +

Public Types

+
typedef tuple< T0, T1, T2, T3,
-T4, T5, T6 > 
InputTuple
 
+T4, T5 > InputTuple
 
typedef internal::tagged_msg
< size_t, T0, T1, T2, T3, T4,
-T5, T6 > 
output_type
 
+T5 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00090.png b/doc/html/a00090.png index a26e6ba874..e3d1565f5b 100644 Binary files a/doc/html/a00090.png and b/doc/html/a00090.png differ diff --git a/doc/html/a00091.html b/doc/html/a00091.html index fdce244fea..552054bb61 100644 --- a/doc/html/a00091.html +++ b/doc/html/a00091.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 > Class Template Reference @@ -33,63 +33,63 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >:
- - + +
- - - + + - - + + - +

Public Types

+
typedef tuple< T0, T1, T2, T3,
-T4, T5, T6, T7 > 
InputTuple
 
+T4, T5, T6 > InputTuple
 
typedef internal::tagged_msg
< size_t, T0, T1, T2, T3, T4,
-T5, T6, T7 > 
output_type
 
+T5, T6 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00091.png b/doc/html/a00091.png index ad53103e7b..a26e6ba874 100644 Binary files a/doc/html/a00091.png and b/doc/html/a00091.png differ diff --git a/doc/html/a00092.html b/doc/html/a00092.html index baac509246..8e06272f84 100644 --- a/doc/html/a00092.html +++ b/doc/html/a00092.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > Class Template Reference @@ -33,63 +33,63 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >:
- - + +
- - - + + - - + + - +

Public Types

+
typedef tuple< T0, T1, T2, T3,
-T4, T5, T6, T7, T8 > 
InputTuple
 
+T4, T5, T6, T7 > InputTuple
 
typedef internal::tagged_msg
< size_t, T0, T1, T2, T3, T4,
-T5, T6, T7, T8 > 
output_type
 
+T5, T6, T7 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00092.png b/doc/html/a00092.png index 6c3aba1e44..ad53103e7b 100644 Binary files a/doc/html/a00092.png and b/doc/html/a00092.png differ diff --git a/doc/html/a00093.html b/doc/html/a00093.html index b5e578f528..4f2d3a27f2 100644 --- a/doc/html/a00093.html +++ b/doc/html/a00093.html @@ -4,7 +4,7 @@ -tbb::tick_count::interval_t Class Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > Class Template Reference @@ -33,74 +33,63 @@
-
tbb::tick_count::interval_t Class Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > Class Template Reference
- -

Relative time interval. - More...

- -

#include <tick_count.h>

+
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >:
+
+
+ + + +
+ + + + + + + +

+Public Types

+typedef tuple< T0, T1, T2, T3,
+T4, T5, T6, T7, T8 > 
InputTuple
 
+typedef internal::tagged_msg
+< size_t, T0, T1, T2, T3, T4,
+T5, T6, T7, T8 > 
output_type
 
+typedef
+internal::unfolded_indexer_node
+< InputTuple > 
unfolded_type
 
- - - - - - - - - - - - - - - -

Public Member Functions

interval_t ()
 Construct a time interval representing zero time duration.
 
interval_t (double sec)
 Construct a time interval representing sec seconds time duration.
 
-double seconds () const
 Return the length of a time interval in seconds.
 
-interval_toperator+= (const interval_t &i)
 Accumulation operator.
 
-interval_toperator-= (const interval_t &i)
 Subtraction operator.
 
- - - - - - - - - - - - + + + + + +

-Friends

-class tbb::tick_count
 
-interval_t operator- (const tick_count &t1, const tick_count &t0)
 Extract the intervals from the tick_counts and subtract them.
 
-interval_t operator+ (const interval_t &i, const interval_t &j)
 Add two intervals.
 
-interval_t operator- (const interval_t &i, const interval_t &j)
 Subtract two intervals.
 
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+void set_name (const char *name)
 
-

Detailed Description

-

Relative time interval.

-

The documentation for this class was generated from the following file:
    -
  • tick_count.h
  • +
    The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00093.png b/doc/html/a00093.png new file mode 100644 index 0000000000..6c3aba1e44 Binary files /dev/null and b/doc/html/a00093.png differ diff --git a/doc/html/a00094.html b/doc/html/a00094.html index bbdcf74fa9..27aebdf4d1 100644 --- a/doc/html/a00094.html +++ b/doc/html/a00094.html @@ -4,7 +4,7 @@ -tbb::invalid_multiple_scheduling Class Reference +tbb::tick_count::interval_t Class Reference @@ -33,46 +33,74 @@
-
tbb::invalid_multiple_scheduling Class Reference
+
tbb::tick_count::interval_t Class Reference
-

Exception for repeated scheduling of the same task_handle. +

Relative time interval. More...

-

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::invalid_multiple_scheduling:
-
-
- - - -
+

#include <tick_count.h>

- - + + + + + + + + + + + + + + + +

Public Member Functions

-const char * what () const throw ()
 
interval_t ()
 Construct a time interval representing zero time duration.
 
interval_t (double sec)
 Construct a time interval representing sec seconds time duration.
 
+double seconds () const
 Return the length of a time interval in seconds.
 
+interval_toperator+= (const interval_t &i)
 Accumulation operator.
 
+interval_toperator-= (const interval_t &i)
 Subtraction operator.
 
+ + + + + + + + + + + +

+Friends

+class tbb::tick_count
 
+interval_t operator- (const tick_count &t1, const tick_count &t0)
 Extract the intervals from the tick_counts and subtract them.
 
+interval_t operator+ (const interval_t &i, const interval_t &j)
 Add two intervals.
 
+interval_t operator- (const interval_t &i, const interval_t &j)
 Subtract two intervals.
 

Detailed Description

-

Exception for repeated scheduling of the same task_handle.

+

Relative time interval.


The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +
  • tick_count.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00095.html b/doc/html/a00095.html index ee95c61343..067236e992 100644 --- a/doc/html/a00095.html +++ b/doc/html/a00095.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::join_node< OutputTuple, JP > Class Template Reference +tbb::invalid_multiple_scheduling Class Reference @@ -33,21 +33,46 @@
+
-
tbb::flow::interface8::join_node< OutputTuple, JP > Class Template Reference
+
tbb::invalid_multiple_scheduling Class Reference
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • + +

    Exception for repeated scheduling of the same task_handle. + More...

    + +

    #include <tbb_exception.h>

    +
    +Inheritance diagram for tbb::invalid_multiple_scheduling:
    +
    +
    + + + +
    + + + + +

    +Public Member Functions

    +const char * what () const throw ()
     
    +

    Detailed Description

    +

    Exception for repeated scheduling of the same task_handle.

    +

    The documentation for this class was generated from the following file:
      +
    • tbb_exception.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00094.png b/doc/html/a00095.png similarity index 100% rename from doc/html/a00094.png rename to doc/html/a00095.png diff --git a/doc/html/a00096.html b/doc/html/a00096.html index f1729a4574..b252b4c09a 100644 --- a/doc/html/a00096.html +++ b/doc/html/a00096.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Class Template Reference +tbb::flow::interface8::join_node< OutputTuple, JP > Class Template Reference @@ -33,92 +33,21 @@
-
-
tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Class Template Reference
+
tbb::flow::interface8::join_node< OutputTuple, JP > Class Template Reference
-
-Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >:
-
-
- - - -
- - - - - - -

-Public Types

-typedef OutputTuple output_type
 
-typedef
-unfolded_type::input_ports_type 
input_ports_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

join_node (graph &g)
 
-template<typename __TBB_B0 , typename __TBB_B1 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 , typename __TBB_B8 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 , typename __TBB_B8 , typename __TBB_B9 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8, __TBB_B9 b9)
 
join_node (const join_node &other)
 
-void set_name (const char *name)
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00096.png b/doc/html/a00096.png deleted file mode 100644 index 04fbb34308..0000000000 Binary files a/doc/html/a00096.png and /dev/null differ diff --git a/doc/html/a00097.html b/doc/html/a00097.html index 639ceddbb5..f7db7b55d1 100644 --- a/doc/html/a00097.html +++ b/doc/html/a00097.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::join_node< OutputTuple, queueing > Class Template Reference +tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Class Template Reference @@ -33,56 +33,92 @@
-
tbb::flow::interface8::join_node< OutputTuple, queueing > Class Template Reference
+
tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, queueing >:
+Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >:
- - + +
- - - + - +

Public Types

+
typedef OutputTuple output_type
 
+
 
typedef
unfolded_type::input_ports_type 
input_ports_type
 
 
- - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - +

Public Member Functions

join_node (graph &g)
 
join_node (const join_node &other)
 
+
join_node (graph &g)
 
+template<typename __TBB_B0 , typename __TBB_B1 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 , typename __TBB_B8 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 , typename __TBB_B8 , typename __TBB_B9 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8, __TBB_B9 b9)
 
join_node (const join_node &other)
 
void set_name (const char *name)
 
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00097.png b/doc/html/a00097.png index 890b2d6bb8..04fbb34308 100644 Binary files a/doc/html/a00097.png and b/doc/html/a00097.png differ diff --git a/doc/html/a00098.html b/doc/html/a00098.html index 96b250d8f6..c09f3e6c74 100644 --- a/doc/html/a00098.html +++ b/doc/html/a00098.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::join_node< OutputTuple, reserving > Class Template Reference +tbb::flow::interface8::join_node< OutputTuple, queueing > Class Template Reference @@ -33,56 +33,56 @@
-
tbb::flow::interface8::join_node< OutputTuple, reserving > Class Template Reference
+
tbb::flow::interface8::join_node< OutputTuple, queueing > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, reserving >:
+Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, queueing >:
- - + +
- - - + - +

Public Types

+
typedef OutputTuple output_type
 
+
 
typedef
unfolded_type::input_ports_type 
input_ports_type
 
 
- - - - - + + + + - +

Public Member Functions

join_node (graph &g)
 
join_node (const join_node &other)
 
+
join_node (graph &g)
 
join_node (const join_node &other)
 
void set_name (const char *name)
 
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00098.png b/doc/html/a00098.png index 0157a3afb3..890b2d6bb8 100644 Binary files a/doc/html/a00098.png and b/doc/html/a00098.png differ diff --git a/doc/html/a00099.html b/doc/html/a00099.html index ae9a11afc1..78242358dd 100644 --- a/doc/html/a00099.html +++ b/doc/html/a00099.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::key_from_policy< JP > Struct Template Reference +tbb::flow::interface8::join_node< OutputTuple, reserving > Class Template Reference @@ -33,34 +33,56 @@
-
tbb::flow::interface8::key_from_policy< JP > Struct Template Reference
+
tbb::flow::interface8::join_node< OutputTuple, reserving > Class Template Reference
+
+Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, reserving >:
+
+
+ + + +
- - - - + + + + +

Public Types

-typedef size_t type
 
-typedef std::false_type is_key_matching
 
+typedef OutputTuple output_type
 
+typedef
+unfolded_type::input_ports_type 
input_ports_type
 
+ + + + + + +

+Public Member Functions

join_node (graph &g)
 
join_node (const join_node &other)
 
+void set_name (const char *name)
 
-
The documentation for this struct was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +
    The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00099.png b/doc/html/a00099.png new file mode 100644 index 0000000000..0157a3afb3 Binary files /dev/null and b/doc/html/a00099.png differ diff --git a/doc/html/a00100.html b/doc/html/a00100.html index 4b6e67570e..899d405dd1 100644 --- a/doc/html/a00100.html +++ b/doc/html/a00100.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::key_from_policy< key_matching< Key & > > Struct Template Reference +tbb::flow::interface8::key_from_policy< JP > Struct Template Reference @@ -33,26 +33,26 @@
-
tbb::flow::interface8::key_from_policy< key_matching< Key & > > Struct Template Reference
+
tbb::flow::interface8::key_from_policy< JP > Struct Template Reference
- - - - + + + +

Public Types

-typedef const Key & type
 
-typedef std::true_type is_key_matching
 
+typedef size_t type
 
+typedef std::false_type is_key_matching
 

The documentation for this struct was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -60,7 +60,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00101.html b/doc/html/a00101.html index e86af53cd3..c1133d663a 100644 --- a/doc/html/a00101.html +++ b/doc/html/a00101.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::key_from_policy< key_matching< Key > > Struct Template Reference +tbb::flow::interface8::key_from_policy< key_matching< Key & > > Struct Template Reference @@ -33,26 +33,26 @@
-
tbb::flow::interface8::key_from_policy< key_matching< Key > > Struct Template Reference
+
tbb::flow::interface8::key_from_policy< key_matching< Key & > > Struct Template Reference
- - - + + - +

Public Types

-typedef Key type
 
+
+typedef const Key & type
 
typedef std::true_type is_key_matching
 
 

The documentation for this struct was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -60,7 +60,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00102.html b/doc/html/a00102.html index b25f5a204c..931c0d2814 100644 --- a/doc/html/a00102.html +++ b/doc/html/a00102.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::limiter_node< T > Class Template Reference +tbb::flow::interface8::key_from_policy< key_matching< Key > > Struct Template Reference @@ -33,305 +33,34 @@
-
tbb::flow::interface8::limiter_node< T > Class Template Reference
+
tbb::flow::interface8::key_from_policy< key_matching< Key > > Struct Template Reference
- -

Forwards messages only if the threshold has not been reached. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::limiter_node< T >:
-
-
- - -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef receiver< input_type >
-::built_predecessors_type 
built_predecessors_type
 
-typedef sender< output_type >
-::built_successors_type 
built_successors_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

limiter_node (graph &g, size_t threshold, int num_decrement_predecessors=0)
 Constructor.
 
limiter_node (const limiter_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
-bool register_successor (receiver< output_type > &r)
 Replace the current successor with this new successor.
 
bool remove_successor (receiver< output_type > &r)
 Removes a successor from this node. More...
 
-built_successors_typebuilt_successors ()
 
-built_predecessors_typebuilt_predecessors ()
 
-void internal_add_built_successor (receiver< output_type > &src)
 
-void internal_delete_built_successor (receiver< output_type > &src)
 
-size_t successor_count ()
 
-void copy_successors (successor_list_type &v)
 
-void internal_add_built_predecessor (sender< output_type > &src)
 
-void internal_delete_built_predecessor (sender< output_type > &src)
 
-size_t predecessor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void extract ()
 
-bool register_predecessor (predecessor_type &src)
 Adds src to the list of cached predecessors.
 
-bool remove_predecessor (predecessor_type &src)
 Removes src from the list of cached predecessors.
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
-virtual bool try_get (T &)
 Request an item from the sender.
 
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
- - - - -

-Public Attributes

-internal::decrementer
-< limiter_node< T > > 
decrement
 The internal receiver< continue_msg > that decrements the count.
 
- - - - - - - - - - - -

-Protected Member Functions

-task * try_put_task (const T &t)
 Puts an item to this receiver.
 
-void reset_receiver (reset_flags)
 
-void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - - - - - -

-Friends

-class internal::forward_task_bypass< limiter_node< T > >
 
-class internal::decrementer< limiter_node< T > >
 
-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - + + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
+typedef Key type
 
+typedef std::true_type is_key_matching
 
-

Detailed Description

-

template<typename T>
-class tbb::flow::interface8::limiter_node< T >

- -

Forwards messages only if the threshold has not been reached.

-

This node forwards items until its threshold is reached. It contains no buffering. If the downstream node rejects, the message is dropped.

-

Member Function Documentation

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
bool tbb::flow::interface8::limiter_node< T >::remove_successor (receiver< output_type > & r)
-
-inlinevirtual
-
- -

Removes a successor from this node.

-

r.remove_predecessor(*this) is also called.

- -

Implements tbb::flow::interface8::sender< T >.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00102.png b/doc/html/a00102.png deleted file mode 100644 index 0a2205abf8..0000000000 Binary files a/doc/html/a00102.png and /dev/null differ diff --git a/doc/html/a00103.html b/doc/html/a00103.html index 18b0acd7c9..5f6e3de315 100644 --- a/doc/html/a00103.html +++ b/doc/html/a00103.html @@ -4,7 +4,7 @@ -tbb::interface6::memory_pool< Alloc > Class Template Reference +tbb::flow::interface8::limiter_node< T > Class Template Reference @@ -33,54 +33,305 @@
-
tbb::interface6::memory_pool< Alloc > Class Template Reference
+
tbb::flow::interface8::limiter_node< T > Class Template Reference
-

Thread-safe growable pool allocator for variable-size requests. +

Forwards messages only if the threshold has not been reached. More...

-

#include <memory_pool.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::interface6::memory_pool< Alloc >:
+Inheritance diagram for tbb::flow::interface8::limiter_node< T >:
- - + + +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef receiver< input_type >
+::built_predecessors_type 
built_predecessors_type
 
+typedef sender< output_type >
+::built_successors_type 
built_successors_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

memory_pool (const Alloc &src=Alloc())
 construct pool with underlying allocator
 
~memory_pool ()
 destroy pool
 
limiter_node (graph &g, size_t threshold, int num_decrement_predecessors=0)
 Constructor.
 
limiter_node (const limiter_node &src)
 Copy constructor.
 
+void set_name (const char *name)
 
+bool register_successor (receiver< output_type > &r)
 Replace the current successor with this new successor.
 
bool remove_successor (receiver< output_type > &r)
 Removes a successor from this node. More...
 
+built_successors_typebuilt_successors ()
 
+built_predecessors_typebuilt_predecessors ()
 
+void internal_add_built_successor (receiver< output_type > &src)
 
+void internal_delete_built_successor (receiver< output_type > &src)
 
+size_t successor_count ()
 
+void copy_successors (successor_list_type &v)
 
+void internal_add_built_predecessor (sender< output_type > &src)
 
+void internal_delete_built_predecessor (sender< output_type > &src)
 
+size_t predecessor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void extract ()
 
+bool register_predecessor (predecessor_type &src)
 Adds src to the list of cached predecessors.
 
+bool remove_predecessor (predecessor_type &src)
 Removes src from the list of cached predecessors.
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
+virtual bool try_get (T &)
 Request an item from the sender.
 
+virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
+virtual bool try_release ()
 Releases the reserved item.
 
+virtual bool try_consume ()
 Consumes the reserved item.
 
+ + + + +

+Public Attributes

+internal::decrementer
+< limiter_node< T > > 
decrement
 The internal receiver< continue_msg > that decrements the count.
 
+ + + + + + + + + + + +

+Protected Member Functions

+task * try_put_task (const T &t)
 Puts an item to this receiver.
 
+void reset_receiver (reset_flags)
 
+void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual bool is_continue_receiver ()
 
+ + + + + + + + + + + + + + +

+Friends

+class internal::forward_task_bypass< limiter_node< T > >
 
+class internal::decrementer< limiter_node< T > >
 
+template<typename R , typename B >
class run_and_put_task
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
+ + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

Detailed Description

-

template<typename Alloc>
-class tbb::interface6::memory_pool< Alloc >

+

template<typename T>
+class tbb::flow::interface8::limiter_node< T >

-

Thread-safe growable pool allocator for variable-size requests.

-

The documentation for this class was generated from the following file:
    -
  • memory_pool.h
  • +

    Forwards messages only if the threshold has not been reached.

    +

    This node forwards items until its threshold is reached. It contains no buffering. If the downstream node rejects, the message is dropped.

    +

Member Function Documentation

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
bool tbb::flow::interface8::limiter_node< T >::remove_successor (receiver< output_type > & r)
+
+inlinevirtual
+
+ +

Removes a successor from this node.

+

r.remove_predecessor(*this) is also called.

+ +

Implements tbb::flow::interface8::sender< T >.

+ +
+
+
The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00103.png b/doc/html/a00103.png index 040c525da8..0a2205abf8 100644 Binary files a/doc/html/a00103.png and b/doc/html/a00103.png differ diff --git a/doc/html/a00104.html b/doc/html/a00104.html index 2177a5ab35..d5d6ed47a0 100644 --- a/doc/html/a00104.html +++ b/doc/html/a00104.html @@ -4,7 +4,7 @@ -tbb::interface6::memory_pool_allocator< T, P > Class Template Reference +tbb::interface6::memory_pool< Alloc > Class Template Reference @@ -33,144 +33,54 @@
-
tbb::interface6::memory_pool_allocator< T, P > Class Template Reference
+
tbb::interface6::memory_pool< Alloc > Class Template Reference
-

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. +

Thread-safe growable pool allocator for variable-size requests. More...

#include <memory_pool.h>

+
+Inheritance diagram for tbb::interface6::memory_pool< Alloc >:
+
+
+ + + +
- - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - -

-Public Types

-typedef
-tbb::internal::allocator_type
-< T >::value_type 
value_type
 
-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
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

memory_pool_allocator (pool_type &pool) throw ()
 
memory_pool_allocator (const memory_pool_allocator &src) throw ()
 
-template<typename U >
 memory_pool_allocator (const memory_pool_allocator< U, P > &src) throw ()
 
-pointer address (reference x) const
 
-const_pointer address (const_reference x) const
 
-pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
-void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
-size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
-template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
-void construct (pointer p, value_type &&value)
 
-void construct (pointer p, const value_type &value)
 
-void destroy (pointer p)
 Destroy value at location pointed to by p.
 
- - - -

-Protected Types

-typedef P pool_type
 
- - - -

-Protected Attributes

-pool_type * my_pool
 
- - - - - - - - - - + + + + + +

-Friends

-template<typename U , typename R >
class memory_pool_allocator
 
-template<typename V , typename U , typename R >
bool operator== (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
-template<typename V , typename U , typename R >
bool operator!= (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
memory_pool (const Alloc &src=Alloc())
 construct pool with underlying allocator
 
~memory_pool ()
 destroy pool
 

Detailed Description

-

template<typename T, typename P = internal::pool_base>
-class tbb::interface6::memory_pool_allocator< T, P >

+

template<typename Alloc>
+class tbb::interface6::memory_pool< Alloc >

-

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

+

Thread-safe growable pool allocator for variable-size requests.


The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00104.png b/doc/html/a00104.png new file mode 100644 index 0000000000..040c525da8 Binary files /dev/null and b/doc/html/a00104.png differ diff --git a/doc/html/a00105.html b/doc/html/a00105.html index de12a4bcfd..ae314882b6 100644 --- a/doc/html/a00105.html +++ b/doc/html/a00105.html @@ -4,7 +4,7 @@ -tbb::interface6::memory_pool_allocator< void, P > Class Template Reference +tbb::interface6::memory_pool_allocator< T, P > Class Template Reference @@ -33,7 +33,7 @@
+List of all members
-
tbb::interface6::memory_pool_allocator< void, P > Class Template Reference
+
tbb::interface6::memory_pool_allocator< T, P > Class Template Reference
-

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. +

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...

#include <memory_pool.h>

- +

Classes

struct  rebind
struct  rebind
 
- - - - - - - - + + + + + + + + + + + + + +

Public Types

-typedef P pool_type
 
-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 
+typedef
+tbb::internal::allocator_type
+< T >::value_type 
value_type
 
+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
 
- - - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

+
 memory_pool_allocator (pool_type &pool) throw ()
 
memory_pool_allocator (const memory_pool_allocator &src) throw ()
 
+
 
memory_pool_allocator (const memory_pool_allocator &src) throw ()
 
template<typename U >
 memory_pool_allocator (const memory_pool_allocator< U, P > &src) throw ()
 
 memory_pool_allocator (const memory_pool_allocator< U, P > &src) throw ()
 
+pointer address (reference x) const
 
+const_pointer address (const_reference x) const
 
+pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
+void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
+size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
+template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
+void construct (pointer p, value_type &&value)
 
+void construct (pointer p, const value_type &value)
 
+void destroy (pointer p)
 Destroy value at location pointed to by p.
 
+ + +

+Protected Types

+typedef P pool_type
 
- - +

Protected Attributes

+
pool_type * my_pool
 
 
@@ -101,25 +152,25 @@ - + - +

Friends

 
template<typename V , typename U , typename R >
bool operator== (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
bool operator== (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
template<typename V , typename U , typename R >
bool operator!= (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
bool operator!= (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 

Detailed Description

-

template<typename P>
-class tbb::interface6::memory_pool_allocator< void, P >

+

template<typename T, typename P = internal::pool_base>
+class tbb::interface6::memory_pool_allocator< T, P >

-

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

+

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.


The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00106.html b/doc/html/a00106.html index ac5281e7f2..6a977d48a2 100644 --- a/doc/html/a00106.html +++ b/doc/html/a00106.html @@ -4,7 +4,7 @@ -rml::MemPoolPolicy Struct Reference +tbb::interface6::memory_pool_allocator< void, P > Class Template Reference @@ -33,63 +33,93 @@
-
rml::MemPoolPolicy Struct Reference
+
tbb::interface6::memory_pool_allocator< void, P > Class Template Reference
+ +

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. + More...

+ +

#include <memory_pool.h>

+ + + +

+Classes

struct  rebind
 
- - + + + + + + + +

Public Types

enum  { TBBMALLOC_POOL_VERSION = 1 - }
 
+typedef P pool_type
 
+typedef void * pointer
 
+typedef const void * const_pointer
 
+typedef void value_type
 
- - + + + + + + + +

Public Member Functions

MemPoolPolicy (rawAllocType pAlloc_, rawFreeType pFree_, size_t granularity_=0, bool fixedPool_=false, bool keepAllMemory_=false)
 
memory_pool_allocator (pool_type &pool) throw ()
 
memory_pool_allocator (const memory_pool_allocator &src) throw ()
 
+template<typename U >
 memory_pool_allocator (const memory_pool_allocator< U, P > &src) throw ()
 
+ + +

+Protected Attributes

+pool_type * my_pool
 
- - - - - - - - - - - - - - - + + + + + + + + + +

-Public Attributes

-rawAllocType pAlloc
 
-rawFreeType pFree
 
-size_t granularity
 
-int version
 
-unsigned fixedPool: 1
 
-unsigned keepAllMemory: 1
 
-unsigned reserved: 30
 

+Friends

+template<typename U , typename R >
class memory_pool_allocator
 
+template<typename V , typename U , typename R >
bool operator== (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
+template<typename V , typename U , typename R >
bool operator!= (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
-
The documentation for this struct was generated from the following file:
    -
  • scalable_allocator.h
  • +

    Detailed Description

    +

    template<typename P>
    +class tbb::interface6::memory_pool_allocator< void, P >

    + +

    Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

    +

    The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00107.html b/doc/html/a00107.html index 0dcd68aeff..23bd7c5c1c 100644 --- a/doc/html/a00107.html +++ b/doc/html/a00107.html @@ -4,7 +4,7 @@ -tbb::missing_wait Class Reference +rml::MemPoolPolicy Struct Reference @@ -33,46 +33,63 @@
-
tbb::missing_wait Class Reference
+
rml::MemPoolPolicy Struct Reference
- -

Exception for missing wait on structured_task_group. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::missing_wait:
-
-
- - - -
+ + + +

+Public Types

enum  { TBBMALLOC_POOL_VERSION = 1 + }
 
- - + + +

Public Member Functions

-const char * what () const throw ()
 
MemPoolPolicy (rawAllocType pAlloc_, rawFreeType pFree_, size_t granularity_=0, bool fixedPool_=false, bool keepAllMemory_=false)
 
+ + + + + + + + + + + + + + +

+Public Attributes

+rawAllocType pAlloc
 
+rawFreeType pFree
 
+size_t granularity
 
+int version
 
+unsigned fixedPool: 1
 
+unsigned keepAllMemory: 1
 
+unsigned reserved: 30
 
-

Detailed Description

-

Exception for missing wait on structured_task_group.

-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +
    The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00107.png b/doc/html/a00107.png deleted file mode 100644 index 7f9c4b3140..0000000000 Binary files a/doc/html/a00107.png and /dev/null differ diff --git a/doc/html/a00108.html b/doc/html/a00108.html index 038fdbfb4f..5f02bbb4cf 100644 --- a/doc/html/a00108.html +++ b/doc/html/a00108.html @@ -4,7 +4,7 @@ -tbb::movable_exception< ExceptionData > Class Template Reference +tbb::missing_wait Class Reference @@ -33,195 +33,46 @@
-
tbb::movable_exception< ExceptionData > Class Template Reference
+
tbb::missing_wait Class Reference
-

Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread. +

Exception for missing wait on structured_task_group. More...

#include <tbb_exception.h>

-Inheritance diagram for tbb::movable_exception< ExceptionData >:
+Inheritance diagram for tbb::missing_wait:
- - -tbb::tbb_exception + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

movable_exception (const ExceptionData &data_)
 
movable_exception (const movable_exception &src) throw ()
 
-const movable_exceptionoperator= (const movable_exception &src)
 
-ExceptionData & data () throw ()
 
-const ExceptionData & data () const throw ()
 
-const char * name () const throw ()
 Returns RTTI name of the originally intercepted exception.
 
-const char * what () const throw ()
 Returns the result of originally intercepted exception's what() method.
 
movable_exceptionmove () throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
void destroy () throw ()
 Destroys objects created by the move() method. More...
 
void throw_self ()
 Throws this exception object. More...
 
- Public Member Functions inherited from tbb::tbb_exception
void operator delete (void *p)
 
- - - - + +

-Protected Attributes

-ExceptionData my_exception_data
 User data.
 
+const char * what () const throw ()
 

Detailed Description

-

template<typename ExceptionData>
-class tbb::movable_exception< ExceptionData >

- -

Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread.

-

Code using TBB can instantiate this template with an arbitrary ExceptionData type and throw this exception object. Such exceptions are intercepted by the TBB scheduler and delivered to the root thread ().

-
See Also
tbb::tbb_exception
-

Member Function Documentation

- -
-
-
-template<typename ExceptionData >
- - - - - -
- - - - - - - - - - - - - -
void tbb::movable_exception< ExceptionData >::destroy ()
throw (
)
-
-inlinevirtual
-
- -

Destroys objects created by the move() method.

-

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

- -

Implements tbb::tbb_exception.

- -
-
- -
-
-
-template<typename ExceptionData >
- - - - - -
- - - - - - - - - - - - - -
movable_exception* tbb::movable_exception< ExceptionData >::move ()
throw (
)
-
-inlinevirtual
-
- -

Creates and returns pointer to the deep copy of this exception object.

-

Move semantics is allowed.

- -

Implements tbb::tbb_exception.

- -
-
- -
-
-
-template<typename ExceptionData >
- - - - - -
- - - - - - - -
void tbb::movable_exception< ExceptionData >::throw_self ()
-
-inlinevirtual
-
- -

Throws this exception object.

-

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

- -

Implements tbb::tbb_exception.

- -
-
-
The documentation for this class was generated from the following file:
    +

    Exception for missing wait on structured_task_group.

    +

    The documentation for this class was generated from the following file:
    • tbb_exception.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00108.png b/doc/html/a00108.png index 2c2e3fe83e..7f9c4b3140 100644 Binary files a/doc/html/a00108.png and b/doc/html/a00108.png differ diff --git a/doc/html/a00109.html b/doc/html/a00109.html index f808e4852c..b58e364862 100644 --- a/doc/html/a00109.html +++ b/doc/html/a00109.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Class Template Reference +tbb::movable_exception< ExceptionData > Class Template Reference @@ -33,119 +33,195 @@
-
tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Class Template Reference
+
tbb::movable_exception< ExceptionData > Class Template Reference
-

implements a function node that supports Input -> (set of outputs) +

Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread. More...

-

#include <flow_graph.h>

+

#include <tbb_exception.h>

-Inheritance diagram for tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >:
+Inheritance diagram for tbb::movable_exception< ExceptionData >:
- - -tbb::flow::interface8::graph_node + + +tbb::tbb_exception
- - - - - - - - - - - -

-Public Types

-typedef Input input_type
 
-typedef null_type output_type
 
-typedef
-internal::wrap_tuple_elements
-< N,
-internal::multifunction_output,
-Output >::type 
output_ports_type
 
-typedef
-internal::multifunction_input
-< input_type,
-output_ports_type, Allocator > 
fInput_type
 
-typedef
-internal::function_input_queue
-< input_type, Allocator > 
input_queue_type
 
- - - - - - - - - - - - -

Public Member Functions

-template<typename Body >
 multifunction_node (graph &g, size_t concurrency, Body body)
 
multifunction_node (const multifunction_node &other)
 
-void set_name (const char *name)
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - -

-Protected Member Functions

-void reset_node (reset_flags f)
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Static Protected Attributes

-static const int N = tbb::flow::tuple_size<Output>::value
 
movable_exception (const ExceptionData &data_)
 
movable_exception (const movable_exception &src) throw ()
 
+const movable_exceptionoperator= (const movable_exception &src)
 
+ExceptionData & data () throw ()
 
+const ExceptionData & data () const throw ()
 
+const char * name () const throw ()
 Returns RTTI name of the originally intercepted exception.
 
+const char * what () const throw ()
 Returns the result of originally intercepted exception's what() method.
 
movable_exceptionmove () throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
void destroy () throw ()
 Destroys objects created by the move() method. More...
 
void throw_self ()
 Throws this exception object. More...
 
- Public Member Functions inherited from tbb::tbb_exception
void operator delete (void *p)
 
- - - - - - - - + + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 

+Protected Attributes

+ExceptionData my_exception_data
 User data.
 

Detailed Description

-

template<typename Input, typename Output, typename Policy = queueing, typename Allocator = cache_aligned_allocator<Input>>
-class tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >

+

template<typename ExceptionData>
+class tbb::movable_exception< ExceptionData >

+ +

Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread.

+

Code using TBB can instantiate this template with an arbitrary ExceptionData type and throw this exception object. Such exceptions are intercepted by the TBB scheduler and delivered to the root thread ().

+
See Also
tbb::tbb_exception
+

Member Function Documentation

+ +
+
+
+template<typename ExceptionData >
+ + + + + +
+ + + + + + + + + + + + + +
void tbb::movable_exception< ExceptionData >::destroy ()
throw (
)
+
+inlinevirtual
+
+ +

Destroys objects created by the move() method.

+

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

+ +

Implements tbb::tbb_exception.

+ +
+
+ +
+
+
+template<typename ExceptionData >
+ + + + + +
+ + + + + + + + + + + + + +
movable_exception* tbb::movable_exception< ExceptionData >::move ()
throw (
)
+
+inlinevirtual
+
-

implements a function node that supports Input -> (set of outputs)

-

The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +

    Creates and returns pointer to the deep copy of this exception object.

    +

    Move semantics is allowed.

    + +

    Implements tbb::tbb_exception.

    + +
+
+ +
+
+
+template<typename ExceptionData >
+ + + + + +
+ + + + + + + +
void tbb::movable_exception< ExceptionData >::throw_self ()
+
+inlinevirtual
+
+ +

Throws this exception object.

+

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

+ +

Implements tbb::tbb_exception.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • tbb_exception.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00109.png b/doc/html/a00109.png index e1645b517a..2c2e3fe83e 100644 Binary files a/doc/html/a00109.png and b/doc/html/a00109.png differ diff --git a/doc/html/a00110.html b/doc/html/a00110.html index 5f2cb193cf..9a608f7437 100644 --- a/doc/html/a00110.html +++ b/doc/html/a00110.html @@ -4,7 +4,7 @@ -tbb::mutex Class Reference +tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Class Template Reference @@ -33,140 +33,119 @@
-
tbb::mutex Class Reference
+
tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Class Template Reference
-

Wrapper around the platform's native reader-writer lock. +

implements a function node that supports Input -> (set of outputs) More...

-

#include <mutex.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::mutex:
+Inheritance diagram for tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >:
- - + + +tbb::flow::interface8::graph_node
- - - - -

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 
- - - - - - - + + + + + + + + + +

Public Types

enum  state_t { INITIALIZED =0x1234, -DESTROYED =0x789A, -HELD =0x56CD - }
 
-typedef LPCRITICAL_SECTION native_handle_type
 Return native_handle.
 
-typedef pthread_mutex_t * native_handle_type
 
+typedef Input input_type
 
+typedef null_type output_type
 
+typedef
+internal::wrap_tuple_elements
+< N,
+internal::multifunction_output,
+Output >::type 
output_ports_type
 
+typedef
+internal::multifunction_input
+< input_type,
+output_ports_type, Allocator > 
fInput_type
 
+typedef
+internal::function_input_queue
+< input_type, Allocator > 
input_queue_type
 
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + +

Public Member Functions

mutex ()
 Construct unacquired mutex.
 
-void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
-void unlock ()
 Release lock.
 
-native_handle_type native_handle ()
 
-void set_state (state_t to)
 Set the internal state.
 
+template<typename Body >
 multifunction_node (graph &g, size_t concurrency, Body body)
 
multifunction_node (const multifunction_node &other)
 
+void set_name (const char *name)
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
+ + +

+Protected Member Functions

+void reset_node (reset_flags f)
 
- - - - - - - + + +

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = false
 

+Static Protected Attributes

+static const int N = tbb::flow::tuple_size<Output>::value
 
- - - + + + + + + + +

-Friends

-class scoped_lock
 

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

Detailed Description

-

Wrapper around the platform's native reader-writer lock.

-

For testing purposes only.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::mutex::try_lock ()
-
-inline
-
- -

Try acquiring lock (non-blocking)

-

Return true if lock acquired; false otherwise.

+

template<typename Input, typename Output, typename Policy = queueing, typename Allocator = cache_aligned_allocator<Input>>
+class tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >

-

References tbb::aligned_space< T, N >::begin().

- -

Referenced by tbb::mutex::scoped_lock::try_acquire().

- -
-
-
The documentation for this class was generated from the following file:
    -
  • mutex.h
  • +

    implements a function node that supports Input -> (set of outputs)

    +

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00110.png b/doc/html/a00110.png index 5fdf55b651..e1645b517a 100644 Binary files a/doc/html/a00110.png and b/doc/html/a00110.png differ diff --git a/doc/html/a00111.html b/doc/html/a00111.html index 1192db24b6..a30bcaaddd 100644 --- a/doc/html/a00111.html +++ b/doc/html/a00111.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference +tbb::mutex Class Reference @@ -33,71 +33,140 @@
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference
+
tbb::mutex Class Reference
+ +

Wrapper around the platform's native reader-writer lock. + More...

+ +

#include <mutex.h>

-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node:
+Inheritance diagram for tbb::mutex:
- - + +
+ + + + +

+Classes

class  scoped_lock
 The scoped locking pattern. More...
 
+ + + + + + + + +

+Public Types

enum  state_t { INITIALIZED =0x1234, +DESTROYED =0x789A, +HELD =0x56CD + }
 
+typedef LPCRITICAL_SECTION native_handle_type
 Return native_handle.
 
+typedef pthread_mutex_t * native_handle_type
 
- - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

Public Member Functions

node (const Key &key)
 
node (const Key &key, const T &t)
 
node (const Key &key, T &&t)
 
node (value_type &&i)
 
-template<typename... Args>
 node (Args &&...args)
 
node (value_type &i)
 
node (const value_type &i)
 
-void * operator new (size_t, node_allocator_type &a)
 
-void operator delete (void *ptr, node_allocator_type &a)
 
mutex ()
 Construct unacquired mutex.
 
+void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
+void unlock ()
 Release lock.
 
+native_handle_type native_handle ()
 
+void set_state (state_t to)
 Set the internal state.
 
+ + + + + + +

+Static Public Attributes

+static const bool is_rw_mutex = false
 
+static const bool is_recursive_mutex = false
 
+static const bool is_fair_mutex = false
 
- - - + + +

-Public Attributes

-value_type item
 

+Friends

+class scoped_lock
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_hash_map.h
  • +

    Detailed Description

    +

    Wrapper around the platform's native reader-writer lock.

    +

    For testing purposes only.

    +

    Member Function Documentation

    + +
    +
    + + + + + +
    + + + + + + + +
    bool tbb::mutex::try_lock ()
    +
    +inline
    +
    + +

    Try acquiring lock (non-blocking)

    +

    Return true if lock acquired; false otherwise.

    + +

    References tbb::aligned_space< T, N >::begin().

    + +

    Referenced by tbb::mutex::scoped_lock::try_acquire().

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • mutex.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00111.png b/doc/html/a00111.png index b914379539..5fdf55b651 100644 Binary files a/doc/html/a00111.png and b/doc/html/a00111.png differ diff --git a/doc/html/a00112.html b/doc/html/a00112.html index 2f1df27910..42191270d8 100644 --- a/doc/html/a00112.html +++ b/doc/html/a00112.html @@ -4,7 +4,7 @@ -tbb::null_mutex Class Reference +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference @@ -33,60 +33,71 @@
-
tbb::null_mutex Class Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference
- -

A mutex which does nothing. - More...

- -

#include <null_mutex.h>

-Inheritance diagram for tbb::null_mutex:
+Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node:
- - + +
- - - - + + + + + + + + + + + + + + + + + + + +

-Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
 

+Public Member Functions

node (const Key &key)
 
node (const Key &key, const T &t)
 
node (const Key &key, T &&t)
 
node (value_type &&i)
 
+template<typename... Args>
 node (Args &&...args)
 
node (value_type &i)
 
node (const value_type &i)
 
+void * operator new (size_t, node_allocator_type &a)
 
+void operator delete (void *ptr, node_allocator_type &a)
 
- - - - - - - + + +

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = true
 
-static const bool is_fair_mutex = true
 

+Public Attributes

+value_type item
 
-

Detailed Description

-

A mutex which does nothing.

-

A null_mutex does no operation and simulates success.

-

The documentation for this class was generated from the following file:
    -
  • null_mutex.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • concurrent_hash_map.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00112.png b/doc/html/a00112.png index b72b3103da..b914379539 100644 Binary files a/doc/html/a00112.png and b/doc/html/a00112.png differ diff --git a/doc/html/a00113.html b/doc/html/a00113.html index 4ca607efad..c5ba70e0d5 100644 --- a/doc/html/a00113.html +++ b/doc/html/a00113.html @@ -4,7 +4,7 @@ -tbb::null_rw_mutex Class Reference +tbb::null_mutex Class Reference @@ -33,7 +33,7 @@
-
tbb::null_rw_mutex Class Reference
+
tbb::null_mutex Class Reference
-

A rw mutex which does nothing. +

A mutex which does nothing. More...

-

#include <null_rw_mutex.h>

+

#include <null_mutex.h>

-Inheritance diagram for tbb::null_rw_mutex:
+Inheritance diagram for tbb::null_mutex:
- - + +
- - + +

Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
class  scoped_lock
 Represents acquisition of a mutex. More...
 
- - - + + - - + - +

Static Public Attributes

-static const bool is_rw_mutex = true
 
+
+static const bool is_rw_mutex = false
 
static const bool is_recursive_mutex = true
 
+
 
static const bool is_fair_mutex = true
 
 

Detailed Description

-

A rw mutex which does nothing.

-

A null_rw_mutex is a rw mutex that does nothing and simulates successful operation.

+

A mutex which does nothing.

+

A null_mutex does no operation and simulates success.


The documentation for this class was generated from the following file:
    -
  • null_rw_mutex.h
  • +
  • null_mutex.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00113.png b/doc/html/a00113.png index 1ddf07110e..b72b3103da 100644 Binary files a/doc/html/a00113.png and b/doc/html/a00113.png differ diff --git a/doc/html/a00114.html b/doc/html/a00114.html index 50cc9d159a..ddc149d177 100644 --- a/doc/html/a00114.html +++ b/doc/html/a00114.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::null_type Struct Reference +tbb::null_rw_mutex Class Reference @@ -33,21 +33,60 @@
+
-
tbb::flow::interface8::null_type Struct Reference
+
tbb::null_rw_mutex Class Reference
-
The documentation for this struct was generated from the following file:
    -
  • flow_graph.h
  • + +

    A rw mutex which does nothing. + More...

    + +

    #include <null_rw_mutex.h>

    +
    +Inheritance diagram for tbb::null_rw_mutex:
    +
    +
    + + + +
    + + + + + +

    +Classes

    class  scoped_lock
     Represents acquisition of a mutex. More...
     
    + + + + + + + +

    +Static Public Attributes

    +static const bool is_rw_mutex = true
     
    +static const bool is_recursive_mutex = true
     
    +static const bool is_fair_mutex = true
     
    +

    Detailed Description

    +

    A rw mutex which does nothing.

    +

    A null_rw_mutex is a rw mutex that does nothing and simulates successful operation.

    +

    The documentation for this class was generated from the following file:
      +
    • null_rw_mutex.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00114.png b/doc/html/a00114.png new file mode 100644 index 0000000000..1ddf07110e Binary files /dev/null and b/doc/html/a00114.png differ diff --git a/doc/html/a00115.html b/doc/html/a00115.html index f9abe8ba05..25b3567694 100644 --- a/doc/html/a00115.html +++ b/doc/html/a00115.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::num_arguments< T > Struct Template Reference +tbb::flow::interface8::null_type Struct Reference @@ -33,31 +33,21 @@
-
-
tbb::flow::interface8::num_arguments< T > Struct Template Reference
+
tbb::flow::interface8::null_type Struct Reference
- - - - -

-Static Public Attributes

-static const int value = 1
 

The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00116.html b/doc/html/a00116.html index ca255cc7c2..4e4bdcc5e9 100644 --- a/doc/html/a00116.html +++ b/doc/html/a00116.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > > Struct Template Reference +tbb::flow::interface8::num_arguments< T > Struct Template Reference @@ -33,23 +33,23 @@
-
tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > > Struct Template Reference
+
tbb::flow::interface8::num_arguments< T > Struct Template Reference
- - + +

Static Public Attributes

-static const int value = port_ref_impl<N1,N2>::size
 
+static const int value = 1
 

The documentation for this struct was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -57,7 +57,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00117.html b/doc/html/a00117.html index 98c4bf18ad..68b3a088ba 100644 --- a/doc/html/a00117.html +++ b/doc/html/a00117.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()> Struct Template Reference +tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > > Struct Template Reference @@ -33,23 +33,23 @@
-
tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()> Struct Template Reference
+
tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > > Struct Template Reference
- - + +

Static Public Attributes

-static const int value = port_ref_impl<N1,N2>::size
 
+static const int value = port_ref_impl<N1,N2>::size
 

The documentation for this struct was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -57,7 +57,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00118.html b/doc/html/a00118.html index 01f37eea62..be64edb84c 100644 --- a/doc/html/a00118.html +++ b/doc/html/a00118.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_buffer< T, Factory > Class Template Reference +tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()> Struct Template Reference @@ -33,95 +33,31 @@
-
tbb::flow::interface8::opencl_buffer< T, Factory > Class Template Reference
+
tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()> Struct Template Reference
- - - - - - - - - - -

-Public Types

-typedef cl_mem native_object_type
 
-typedef opencl_buffer memory_object_type
 
-typedef Factory opencl_factory_type
 
-template<access_type a>
using iterator = T *
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-template<access_type a>
iterator< a > access () const
 
-T * data () const
 
-template<access_type a = read_write>
iterator< a > begin () const
 
-template<access_type a = read_write>
iterator< a > end () const
 
-size_t size () const
 
-T & operator[] (ptrdiff_t k)
 
opencl_buffer (opencl_graph &g, size_t size)
 
opencl_buffer (Factory &f, size_t size)
 
-cl_mem native_object () const
 
-const opencl_buffermemory_object () const
 
-void send (opencl_device device, dependency_msg< opencl_buffer, Factory > &dependency) const
 
-void receive (const dependency_msg< opencl_buffer, Factory > &dependency) const
 
- - - - - - + + +

-Friends

-template<typename >
class opencl_factory
 
-bool operator== (const opencl_buffer< T, Factory > &lhs, const opencl_buffer< T, Factory > &rhs)
 

+Static Public Attributes

+static const int value = port_ref_impl<N1,N2>::size
 
-
The documentation for this class was generated from the following file:
    +
    The documentation for this struct was generated from the following file:
    • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00119.html b/doc/html/a00119.html index 293b877b86..431d81ff39 100644 --- a/doc/html/a00119.html +++ b/doc/html/a00119.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_buffer_impl< Factory > Class Template Reference +tbb::flow::interface8::opencl_buffer< T, Factory > Class Template Reference @@ -33,88 +33,103 @@
-
tbb::flow::interface8::opencl_buffer_impl< Factory > Class Template Reference
+
tbb::flow::interface8::opencl_buffer< T, Factory > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::opencl_buffer_impl< Factory >:
+Inheritance diagram for tbb::flow::interface8::opencl_buffer< T, Factory >:
- - -tbb::flow::interface8::opencl_memory< Factory > + + +tbb::flow::interface8::opencl_subbuffer< T, Factory >
+ + + + + + + + + + +

+Public Types

+typedef cl_mem native_object_type
 
+typedef opencl_buffer memory_object_type
 
+typedef Factory opencl_factory_type
 
+template<access_type a>
using iterator = T *
 
- - - + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +

Public Member Functions

opencl_buffer_impl (size_t size, Factory &f)
 
+
+template<access_type a>
iterator< a > access () const
 
+T * data () const
 
+template<access_type a = read_write>
iterator< a > begin () const
 
+template<access_type a = read_write>
iterator< a > end () const
 
size_t size () const
 
-void map_memory (opencl_device device, dependency_msg< void *, Factory > &dmsg)
 
- Public Member Functions inherited from tbb::flow::interface8::opencl_memory< Factory >
opencl_memory (Factory &f)
 
-cl_mem get_cl_mem () const
 
-void * get_host_ptr ()
 
-dependency_msg< void *, Factory > send (opencl_device d, const cl_event *e)
 
-dependency_msg< void *, Factory > receive (const cl_event *e)
 
 
+T & operator[] (ptrdiff_t k)
 
opencl_buffer (opencl_graph &g, size_t size)
 
opencl_buffer (Factory &f, size_t size)
 
+cl_mem native_object () const
 
+const opencl_buffermemory_object () const
 
+void send (opencl_device device, dependency_msg< opencl_buffer, Factory > &dependency) const
 
+void receive (const dependency_msg< opencl_buffer, Factory > &dependency) const
 
+opencl_subbuffer< T, Factory > subbuffer (size_t index, size_t size) const
 
- + + + - - -

Friends

+
+template<typename >
class opencl_factory
 
template<typename , typename >
class opencl_buffer
 
- - - - - - - - - - - - - - - - + + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::opencl_memory< Factory >
-cl_mem my_cl_mem
 
-tbb::atomic
-< opencl_device::device_id_type > 
my_curr_device_id
 
-void * my_host_ptr
 
-Factory * my_factory
 
-tbb::spin_mutex my_sending_lock
 
-bool my_sending_event_present
 
-cl_event my_sending_event
 
class opencl_subbuffer
 
+bool operator== (const opencl_buffer< T, Factory > &lhs, const opencl_buffer< T, Factory > &rhs)
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -122,7 +137,7 @@

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00119.png b/doc/html/a00119.png index 1aeec1a091..404ed8a750 100644 Binary files a/doc/html/a00119.png and b/doc/html/a00119.png differ diff --git a/doc/html/a00120.html b/doc/html/a00120.html index 75965547cb..04ccfc4b69 100644 --- a/doc/html/a00120.html +++ b/doc/html/a00120.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_device Class Reference +tbb::flow::interface8::opencl_buffer_impl< Factory > Class Template Reference @@ -33,119 +33,94 @@
-
tbb::flow::interface8::opencl_device Class Reference
+
tbb::flow::interface8::opencl_buffer_impl< Factory > Class Template Reference
+
+Inheritance diagram for tbb::flow::interface8::opencl_buffer_impl< Factory >:
+
+
+ + +tbb::flow::interface8::opencl_memory< Factory > + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

-std::string platform_profile () const
 
-std::string platform_version () const
 
-std::string platform_name () const
 
-std::string platform_vendor () const
 
-std::string platform_extensions () const
 
-template<typename T >
void info (cl_device_info i, T &t) const
 
-std::string version () const
 
-int major_version () const
 
-int minor_version () const
 
-bool out_of_order_exec_mode_on_host_present () const
 
-bool out_of_order_exec_mode_on_device_present () const
 
-std::array< size_t, 3 > max_work_item_sizes () const
 
-size_t max_work_group_size () const
 
-bool built_in_kernel_available (const std::string &k) const
 
-std::string built_in_kernels () const
 
-std::string name () const
 
-cl_bool available () const
 
-cl_bool compiler_available () const
 
-cl_bool linker_available () const
 
-bool extension_available (const std::string &ext) const
 
-std::string extensions () const
 
-cl_device_type type () const
 
-std::string vendor () const
 
-cl_uint address_bits () const
 
opencl_buffer_impl (size_t size, Factory &f)
 
opencl_buffer_impl (cl_mem m, size_t index, size_t size, Factory &f)
 
+size_t size () const
 
+void map_memory (opencl_device device, dependency_msg< void *, Factory > &dmsg)
 
- Public Member Functions inherited from tbb::flow::interface8::opencl_memory< Factory >
opencl_memory (Factory &f)
 
+cl_mem get_cl_mem () const
 
+void * get_host_ptr ()
 
+Factory * factory () const
 
+dependency_msg< void *, Factory > send (opencl_device d, const cl_event *e)
 
+dependency_msg< void *, Factory > receive (const cl_event *e)
 
- - - - - - - - - - - +template<typename , typename > - - +

Friends

-template<typename DeviceFilter >
class opencl_factory
 
-template<typename Factory >
class opencl_memory
 
-template<typename Factory >
class opencl_program
 
-class opencl_foundation
 
-template<typename T , typename Factory >
class opencl_buffer
 
-bool operator== (opencl_device d1, opencl_device d2)
 
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::opencl_memory< Factory >
+cl_mem my_cl_mem
 
+tbb::atomic
+< opencl_device::device_id_type > 
my_curr_device_id
 
+void * my_host_ptr
 
+Factory * my_factory
 
+tbb::spin_mutex my_sending_lock
 
+bool my_sending_event_present
 
+cl_event my_sending_event
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -153,7 +128,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00120.png b/doc/html/a00120.png new file mode 100644 index 0000000000..1aeec1a091 Binary files /dev/null and b/doc/html/a00120.png differ diff --git a/doc/html/a00121.html b/doc/html/a00121.html index d267b4ebd2..68467ac504 100644 --- a/doc/html/a00121.html +++ b/doc/html/a00121.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_device_list Class Reference +tbb::flow::interface8::opencl_device Class Reference @@ -33,61 +33,142 @@
-
tbb::flow::interface8::opencl_device_list Class Reference
+
tbb::flow::interface8::opencl_device Class Reference
- - - - - - + + + +

Public Types

-typedef container_type::iterator iterator
 
-typedef
-container_type::const_iterator 
const_iterator
 
-typedef container_type::size_type size_type
 
enum  : device_id_type { unknown = device_id_type( -2 ), +host = device_id_type( -1 ) + }
 
+typedef size_t device_id_type
 
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

opencl_device_list (std::initializer_list< opencl_device > il)
 
-void add (opencl_device d)
 
-size_type size () const
 
-iterator begin ()
 
-iterator end ()
 
-const_iterator begin () const
 
-const_iterator end () const
 
-const_iterator cbegin () const
 
-const_iterator cend () const
 
opencl_device (cl_device_id cl_d_id, device_id_type device_id)
 
+std::string platform_profile () const
 
+std::string platform_version () const
 
+std::string platform_name () const
 
+std::string platform_vendor () const
 
+std::string platform_extensions () const
 
+template<typename T >
void info (cl_device_info i, T &t) const
 
+std::string version () const
 
+int major_version () const
 
+int minor_version () const
 
+bool out_of_order_exec_mode_on_host_present () const
 
+bool out_of_order_exec_mode_on_device_present () const
 
+std::array< size_t, 3 > max_work_item_sizes () const
 
+size_t max_work_group_size () const
 
+bool built_in_kernel_available (const std::string &k) const
 
+std::string built_in_kernels () const
 
+std::string name () const
 
+cl_bool available () const
 
+cl_bool compiler_available () const
 
+cl_bool linker_available () const
 
+bool extension_available (const std::string &ext) const
 
+std::string extensions () const
 
+cl_device_type type () const
 
+std::string vendor () const
 
+cl_uint address_bits () const
 
+cl_device_id device_id () const
 
+cl_command_queue command_queue () const
 
+void set_command_queue (cl_command_queue cmd_queue)
 
+ + + + + + + + + + + + + + + + +

+Friends

+template<typename DeviceFilter >
class opencl_factory
 
+template<typename Factory >
class opencl_memory
 
+template<typename Factory >
class opencl_program
 
+class opencl_foundation
 
+template<typename T , typename Factory >
class opencl_buffer
 
+bool operator== (opencl_device d1, opencl_device d2)
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -95,7 +176,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00122.html b/doc/html/a00122.html index 0fd4e5902b..e8f8543129 100644 --- a/doc/html/a00122.html +++ b/doc/html/a00122.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_device_with_key< Key > Class Template Reference +tbb::flow::interface8::opencl_device_list Class Reference @@ -33,29 +33,61 @@
-
tbb::flow::interface8::opencl_device_with_key< Key > Class Template Reference
+
tbb::flow::interface8::opencl_device_list Class Reference
+ + + + + + + +

+Public Types

+typedef container_type::iterator iterator
 
+typedef
+container_type::const_iterator 
const_iterator
 
+typedef container_type::size_type size_type
 
- - - - - - + + + + + + + + + + + + + + + + + +

Public Member Functions

opencl_device_with_key (opencl_device d, Key k)
 
-Key key () const
 
-opencl_device device () const
 
opencl_device_list (std::initializer_list< opencl_device > il)
 
+void add (opencl_device d)
 
+size_type size () const
 
+iterator begin ()
 
+iterator end ()
 
+const_iterator begin () const
 
+const_iterator end () const
 
+const_iterator cbegin () const
 
+const_iterator cend () const
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -63,7 +95,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00123.html b/doc/html/a00123.html index 6399926773..f32364c917 100644 --- a/doc/html/a00123.html +++ b/doc/html/a00123.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_factory< DeviceFilter > Class Template Reference +tbb::flow::interface8::opencl_device_with_key< Key > Class Template Reference @@ -33,46 +33,29 @@
-
tbb::flow::interface8::opencl_factory< DeviceFilter > Class Template Reference
+
tbb::flow::interface8::opencl_device_with_key< Key > Class Template Reference
- - - - -

Public Member Functions

opencl_factory (opencl_graph &g)
 
-bool init (const opencl_device_list &device_list)
 
- - - - - - - - - - - - - + + + + + +

-Friends

-template<typename Factory >
class opencl_program
 
-template<typename Factory >
class opencl_buffer_impl
 
-template<typename Factory >
class opencl_memory
 
-template<typename... Args>
class opencl_node
 
opencl_device_with_key (opencl_device d, Key k)
 
+Key key () const
 
+opencl_device device () const
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -80,7 +63,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00124.html b/doc/html/a00124.html index 7e58567c7d..85618158cb 100644 --- a/doc/html/a00124.html +++ b/doc/html/a00124.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_foundation Class Reference +tbb::flow::interface8::opencl_factory< DeviceFilter > Class Template Reference @@ -33,41 +33,46 @@
-
tbb::flow::interface8::opencl_foundation Class Reference
+
tbb::flow::interface8::opencl_factory< DeviceFilter > Class Template Reference
-
-Inheritance diagram for tbb::flow::interface8::opencl_foundation:
-
-
- - - -
- - - - - - - - + + + + +

Public Member Functions

opencl_foundation (opencl_graph &g)
 
-default_opencl_factoryget_default_opencl_factory ()
 
-const opencl_device_listget_all_devices ()
 
-default_device_selector_type get_default_device_selector ()
 
opencl_factory (opencl_graph &g)
 
+bool init (const opencl_device_list &device_list)
 
+ + + + + + + + + + + + +

+Friends

+template<typename Factory >
class opencl_program
 
+template<typename Factory >
class opencl_buffer_impl
 
+template<typename Factory >
class opencl_memory
 
+template<typename... Args>
class opencl_node
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -75,7 +80,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00124.png b/doc/html/a00124.png deleted file mode 100644 index 947fbde9e6..0000000000 Binary files a/doc/html/a00124.png and /dev/null differ diff --git a/doc/html/a00125.html b/doc/html/a00125.html index 7cd7380cb0..bc7626cfa6 100644 --- a/doc/html/a00125.html +++ b/doc/html/a00125.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_graph Class Reference +tbb::flow::interface8::opencl_foundation Class Reference @@ -33,173 +33,41 @@
-
tbb::flow::interface8::opencl_graph Class Reference
+
tbb::flow::interface8::opencl_foundation Class Reference
-Inheritance diagram for tbb::flow::interface8::opencl_graph:
+Inheritance diagram for tbb::flow::interface8::opencl_foundation:
- - -tbb::flow::interface8::graph + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

opencl_graph ()
 Constructs a graph with isolated task_group_context.
 
opencl_graph (task_group_context &context)
 Constructs a graph with an user context.
 
~opencl_graph ()
 Destroys a graph.
 
-const opencl_device_listavailable_devices ()
 Available devices.
 
-default_opencl_factoryopencl_factory ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph
graph ()
 Constructs a graph with isolated task_group_context.
 
graph (task_group_context &use_this_context)
 Constructs a graph with use_this_context as context.
 
 ~graph ()
 Destroys the graph. More...
 
-void set_name (const char *name)
 
void increment_wait_count ()
 Used to register that an external entity may still interact with the graph. More...
 
void decrement_wait_count ()
 Deregisters an external entity that may have interacted with the graph. More...
 
template<typename Receiver , typename Body >
void run (Receiver &r, Body body)
 Spawns a task that runs a body and puts its output to a specific receiver. More...
 
template<typename Body >
void run (Body body)
 Spawns a task that runs a function object. More...
 
void wait_for_all ()
 Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls. More...
 
-task * root_task ()
 Returns the root task of the graph.
 
-void set_active (bool a=true)
 
-bool is_active ()
 
-void add_task_to_reset_list (task *tp)
 
-iterator begin ()
 start iterator
 
-iterator end ()
 end iterator
 
-const_iterator begin () const
 start const iterator
 
-const_iterator end () const
 end const iterator
 
-const_iterator cbegin () const
 start const iterator
 
-const_iterator cend () const
 end const iterator
 
-bool is_cancelled ()
 return status of graph execution
 
-bool exception_thrown ()
 
-void reset (reset_flags f=rf_reset_protocol)
 
- - - -

-Protected Member Functions

-opencl_foundationget_opencl_foundation ()
 
- - - -

-Protected Attributes

-opencl_foundationmy_opencl_foundation
 
- - - - - - - - - - - - - -

-Friends

-template<typename T , typename Factory >
class opencl_buffer
 
-template<cl_channel_order channel_order, cl_channel_type channel_type, typename Factory >
class opencl_image2d
 
-template<typename... Args>
class opencl_node
 
-template<typename DeviceFilter >
class opencl_factory
 
- - - - - - + + + + + + + +

-Additional Inherited Members

- Public Types inherited from tbb::flow::interface8::graph
-typedef graph_iterator< graph,
-graph_node
iterator
 
-typedef graph_iterator< const
-graph, const graph_node
const_iterator
 
opencl_foundation (opencl_graph &g)
 
+default_opencl_factoryget_default_opencl_factory ()
 
+const opencl_device_listget_all_devices ()
 
+default_device_selector_type get_default_device_selector ()
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -207,7 +75,7 @@

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00125.png b/doc/html/a00125.png index c207263440..947fbde9e6 100644 Binary files a/doc/html/a00125.png and b/doc/html/a00125.png differ diff --git a/doc/html/a00126.html b/doc/html/a00126.html index 041efa71ea..b45cff8767 100644 --- a/doc/html/a00126.html +++ b/doc/html/a00126.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_memory< Factory > Class Template Reference +tbb::flow::interface8::opencl_graph Class Reference @@ -33,73 +33,173 @@
-
tbb::flow::interface8::opencl_memory< Factory > Class Template Referenceabstract
+
tbb::flow::interface8::opencl_graph Class Reference
-Inheritance diagram for tbb::flow::interface8::opencl_memory< Factory >:
+Inheritance diagram for tbb::flow::interface8::opencl_graph:
- - -tbb::flow::interface8::opencl_buffer_impl< Factory > + + +tbb::flow::interface8::graph
- - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

opencl_memory (Factory &f)
 
-cl_mem get_cl_mem () const
 
-void * get_host_ptr ()
 
-dependency_msg< void *, Factory > send (opencl_device d, const cl_event *e)
 
-dependency_msg< void *, Factory > receive (const cl_event *e)
 
-virtual void map_memory (opencl_device, dependency_msg< void *, Factory > &)=0
 
opencl_graph ()
 Constructs a graph with isolated task_group_context.
 
opencl_graph (task_group_context &context)
 Constructs a graph with an user context.
 
~opencl_graph ()
 Destroys a graph.
 
+const opencl_device_listavailable_devices ()
 Available devices.
 
+default_opencl_factoryopencl_factory ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph
graph ()
 Constructs a graph with isolated task_group_context.
 
graph (task_group_context &use_this_context)
 Constructs a graph with use_this_context as context.
 
 ~graph ()
 Destroys the graph. More...
 
+void set_name (const char *name)
 
void increment_wait_count ()
 Used to register that an external entity may still interact with the graph. More...
 
void decrement_wait_count ()
 Deregisters an external entity that may have interacted with the graph. More...
 
template<typename Receiver , typename Body >
void run (Receiver &r, Body body)
 Spawns a task that runs a body and puts its output to a specific receiver. More...
 
template<typename Body >
void run (Body body)
 Spawns a task that runs a function object. More...
 
void wait_for_all ()
 Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls. More...
 
+task * root_task ()
 Returns the root task of the graph.
 
+void set_active (bool a=true)
 
+bool is_active ()
 
+void add_task_to_reset_list (task *tp)
 
+iterator begin ()
 start iterator
 
+iterator end ()
 end iterator
 
+const_iterator begin () const
 start const iterator
 
+const_iterator end () const
 end const iterator
 
+const_iterator cbegin () const
 start const iterator
 
+const_iterator cend () const
 end const iterator
 
+bool is_cancelled ()
 return status of graph execution
 
+bool exception_thrown ()
 
+void reset (reset_flags f=rf_reset_protocol)
 
+ + +

+Protected Member Functions

+opencl_foundationget_opencl_foundation ()
 
- - - - - - - - - - - - - - + + +

Protected Attributes

-cl_mem my_cl_mem
 
-tbb::atomic
-< opencl_device::device_id_type > 
my_curr_device_id
 
-void * my_host_ptr
 
-Factory * my_factory
 
-tbb::spin_mutex my_sending_lock
 
-bool my_sending_event_present
 
-cl_event my_sending_event
 
+opencl_foundationmy_opencl_foundation
 
+ + + + + + + + + + + + + +

+Friends

+template<typename T , typename Factory >
class opencl_buffer
 
+template<cl_channel_order channel_order, cl_channel_type channel_type, typename Factory >
class opencl_image2d
 
+template<typename... Args>
class opencl_node
 
+template<typename DeviceFilter >
class opencl_factory
 
+ + + + + +

+Additional Inherited Members

- Public Types inherited from tbb::flow::interface8::graph
+typedef graph_iterator< graph,
+graph_node
iterator
 
+typedef graph_iterator< const
+graph, const graph_node
const_iterator
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -107,7 +207,7 @@

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00126.png b/doc/html/a00126.png index d90f28a575..c207263440 100644 Binary files a/doc/html/a00126.png and b/doc/html/a00126.png differ diff --git a/doc/html/a00127.html b/doc/html/a00127.html index 2f6a64f468..999e8a6a81 100644 --- a/doc/html/a00127.html +++ b/doc/html/a00127.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_node< Args > Class Template Reference +tbb::flow::interface8::opencl_memory< Factory > Class Template Reference @@ -33,21 +33,84 @@
+
-
tbb::flow::interface8::opencl_node< Args > Class Template Reference
+
tbb::flow::interface8::opencl_memory< Factory > Class Template Referenceabstract
+
+Inheritance diagram for tbb::flow::interface8::opencl_memory< Factory >:
+
+
+ + +tbb::flow::interface8::opencl_buffer_impl< Factory > + +
+ + + + + + + + + + + + + + + + +

+Public Member Functions

opencl_memory (Factory &f)
 
+cl_mem get_cl_mem () const
 
+void * get_host_ptr ()
 
+Factory * factory () const
 
+dependency_msg< void *, Factory > send (opencl_device d, const cl_event *e)
 
+dependency_msg< void *, Factory > receive (const cl_event *e)
 
+virtual void map_memory (opencl_device, dependency_msg< void *, Factory > &)=0
 
+ + + + + + + + + + + + + + + +

+Protected Attributes

+cl_mem my_cl_mem
 
+tbb::atomic
+< opencl_device::device_id_type > 
my_curr_device_id
 
+void * my_host_ptr
 
+Factory * my_factory
 
+tbb::spin_mutex my_sending_lock
 
+bool my_sending_event_present
 
+cl_event my_sending_event
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00127.png b/doc/html/a00127.png new file mode 100644 index 0000000000..d90f28a575 Binary files /dev/null and b/doc/html/a00127.png differ diff --git a/doc/html/a00128.html b/doc/html/a00128.html index e8dbb45b6a..4c223684bf 100644 --- a/doc/html/a00128.html +++ b/doc/html/a00128.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_node< tuple< Ports...> > Class Template Reference +tbb::flow::interface8::opencl_node< Args > Class Template Reference @@ -33,47 +33,21 @@
-
-
tbb::flow::interface8::opencl_node< tuple< Ports...> > Class Template Reference
+
tbb::flow::interface8::opencl_node< Args > Class Template Reference
-
-Inheritance diagram for tbb::flow::interface8::opencl_node< tuple< Ports...> >:
-
-
- - -tbb::flow::interface8::opencl_node< tuple< Ports...>, queueing, default_opencl_factory > - -
- - - - - - - - - -

-Public Member Functions

opencl_node (opencl_graph &g, const std::string &kernel)
 
opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel)
 
-template<typename DeviceSelector >
 opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel, DeviceSelector d)
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00128.png b/doc/html/a00128.png deleted file mode 100644 index 8a1801fad0..0000000000 Binary files a/doc/html/a00128.png and /dev/null differ diff --git a/doc/html/a00129.html b/doc/html/a00129.html index 6ef4967028..85d04aadc2 100644 --- a/doc/html/a00129.html +++ b/doc/html/a00129.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_node< tuple< Ports...>, JP > Class Template Reference +tbb::flow::interface8::opencl_node< tuple< Ports...> > Class Template Reference @@ -33,39 +33,39 @@
-
tbb::flow::interface8::opencl_node< tuple< Ports...>, JP > Class Template Reference
+
tbb::flow::interface8::opencl_node< tuple< Ports...> > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >:
+Inheritance diagram for tbb::flow::interface8::opencl_node< tuple< Ports...> >:
- - -tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, default_opencl_factory > + + +tbb::flow::interface8::opencl_node< tuple< Ports...>, queueing, default_opencl_factory >
- - - - - + + + + - - + +

Public Member Functions

opencl_node (opencl_graph &g, const std::string &kernel)
 
opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel)
 
+
opencl_node (opencl_graph &g, const std::string &kernel)
 
opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel)
 
template<typename DeviceSelector >
 opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel, DeviceSelector d)
 
 opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel, DeviceSelector d)
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -73,7 +73,7 @@

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00129.png b/doc/html/a00129.png index 14dcd5dbe1..8a1801fad0 100644 Binary files a/doc/html/a00129.png and b/doc/html/a00129.png differ diff --git a/doc/html/a00130.html b/doc/html/a00130.html index b1add1dcaa..a714726533 100644 --- a/doc/html/a00130.html +++ b/doc/html/a00130.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory > Class Template Reference +tbb::flow::interface8::opencl_node< tuple< Ports...>, JP > Class Template Reference @@ -33,78 +33,39 @@
-
tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory > Class Template Reference
+
tbb::flow::interface8::opencl_node< tuple< Ports...>, JP > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >:
+Inheritance diagram for tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >:
- - -tbb::flow::interface8::composite_node< tuple< dependency_msg< Ports, Factory >...>, tuple< dependency_msg< Ports, Factory >...> > + + +tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, default_opencl_factory >
- + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

+
opencl_node (opencl_graph &g, const std::string &kernel)
 
opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel)
 
template<typename DeviceSelector >
 opencl_node (opencl_graph &g, const opencl_program< Factory > &p, const std::string &kernel_name, DeviceSelector d, Factory &f)
 
opencl_node (opencl_graph &g, const opencl_program< Factory > &p, const std::string &kernel_name, Factory &f)
 
opencl_node (const opencl_node &node)
 
opencl_node (opencl_node &&node)
 
-template<typename T >
void set_ndranges (std::initializer_list< T > global_work_size)
 
-template<typename GlobalNDRange >
void set_ndranges (GlobalNDRange &&global_work_size)
 
-template<typename T , typename LocalNDRange >
void set_ndranges (std::initializer_list< T > global_work_size, LocalNDRange &&local_work_size)
 
-template<typename T1 , typename T2 = T1>
void set_ndranges (std::initializer_list< T1 > global_work_size, std::initializer_list< T2 > local_work_size)
 
-template<typename GlobalNDRange , typename LocalNDRange >
void set_ndranges (GlobalNDRange &&global_work_size, LocalNDRange &&local_work_size)
 
-template<typename GlobalNDRange , typename T >
void set_ndranges (GlobalNDRange &&global_work_size, std::initializer_list< T > local_work_size)
 
-template<typename... Args>
void set_args (Args &&...args)
 
- - - + +

-Protected Member Functions

-void reset_node (reset_flags=rf_reset_protocol)
 
 opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel, DeviceSelector d)
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -112,7 +73,7 @@

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00130.png b/doc/html/a00130.png index 36dff1d29d..14dcd5dbe1 100644 Binary files a/doc/html/a00130.png and b/doc/html/a00130.png differ diff --git a/doc/html/a00131.html b/doc/html/a00131.html index 36f4d8ae8b..f17301ef81 100644 --- a/doc/html/a00131.html +++ b/doc/html/a00131.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_program< Factory > Class Template Reference +tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory > Class Template Reference @@ -33,49 +33,78 @@
-
tbb::flow::interface8::opencl_program< Factory > Class Template Reference
+
tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::opencl_program< Factory >:
+Inheritance diagram for tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >:
- - + + +tbb::flow::interface8::composite_node< tuple< dependency_msg< Ports, Factory >...>, tuple< dependency_msg< Ports, Factory >...> >
- - - - - - - - -

Public Member Functions

opencl_program (opencl_program_type type, const std::string &program_name)
 
opencl_program (const char *program_name)
 
opencl_program (const std::string &program_name)
 
opencl_program (const opencl_program &src)
 
- - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + +

-Friends

+
+template<typename DeviceSelector >
 opencl_node (opencl_graph &g, const opencl_program< Factory > &p, const std::string &kernel_name, DeviceSelector d, Factory &f)
 
opencl_node (opencl_graph &g, const opencl_program< Factory > &p, const std::string &kernel_name, Factory &f)
 
opencl_node (const opencl_node &node)
 
opencl_node (opencl_node &&node)
 
+template<typename T >
void set_ndranges (std::initializer_list< T > global_work_size)
 
+template<typename GlobalNDRange >
void set_ndranges (GlobalNDRange &&global_work_size)
 
+template<typename T , typename LocalNDRange >
void set_ndranges (std::initializer_list< T > global_work_size, LocalNDRange &&local_work_size)
 
+template<typename T1 , typename T2 = T1>
void set_ndranges (std::initializer_list< T1 > global_work_size, std::initializer_list< T2 > local_work_size)
 
+template<typename GlobalNDRange , typename LocalNDRange >
void set_ndranges (GlobalNDRange &&global_work_size, LocalNDRange &&local_work_size)
 
+template<typename GlobalNDRange , typename T >
void set_ndranges (GlobalNDRange &&global_work_size, std::initializer_list< T > local_work_size)
 
template<typename... Args>
class opencl_node
 
void set_args (Args &&...args)
 
+ + +

+Protected Member Functions

+void reset_node (reset_flags=rf_reset_protocol)
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -83,7 +112,7 @@

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00131.png b/doc/html/a00131.png index 1e59d8d414..36dff1d29d 100644 Binary files a/doc/html/a00131.png and b/doc/html/a00131.png differ diff --git a/doc/html/a00132.html b/doc/html/a00132.html index 647f954cf2..b3a059623d 100644 --- a/doc/html/a00132.html +++ b/doc/html/a00132.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::overwrite_node< T > Class Template Reference +tbb::flow::interface8::opencl_program< Factory > Class Template Reference @@ -33,270 +33,57 @@
-
tbb::flow::interface8::overwrite_node< T > Class Template Reference
+
tbb::flow::interface8::opencl_program< Factory > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::overwrite_node< T >:
+Inheritance diagram for tbb::flow::interface8::opencl_program< Factory >:
- - -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > -tbb::flow::interface8::write_once_node< T > + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef receiver< input_type >
-::built_predecessors_type 
built_predecessors_type
 
-typedef sender< output_type >
-::built_successors_type 
built_successors_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

overwrite_node (graph &g)
 
overwrite_node (const overwrite_node &src)
 
-void set_name (const char *name)
 
-bool register_successor (successor_type &s)
 Add a new successor to this node.
 
-bool remove_successor (successor_type &s)
 Removes a successor from this node.
 
-built_predecessors_typebuilt_predecessors ()
 
-built_successors_typebuilt_successors ()
 
-void internal_add_built_successor (successor_type &s)
 
-void internal_delete_built_successor (successor_type &s)
 
-size_t successor_count ()
 
-void copy_successors (successor_list_type &v)
 
-void internal_add_built_predecessor (predecessor_type &p)
 
-void internal_delete_built_predecessor (predecessor_type &p)
 
-size_t predecessor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void extract ()
 
-bool try_get (input_type &v)
 Request an item from the sender.
 
-bool is_valid ()
 
-void clear ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
- - - - - - - - - - -

-Protected Member Functions

-task * try_put_task (const input_type &v)
 
-void reset_receiver (reset_flags)
 
-void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - - - - - - - - - + + + + + + + +

-Protected Attributes

-spin_mutex my_mutex
 
-internal::broadcast_cache
-< input_type, null_rw_mutex
my_successors
 
-internal::edge_container
-< predecessor_type
my_built_predecessors
 
-input_type my_buffer
 
-bool my_buffer_is_valid
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
opencl_program (opencl_program_type type, const std::string &program_name)
 
opencl_program (const char *program_name)
 
opencl_program (const std::string &program_name)
 
opencl_program (const opencl_program &src)
 
- - - - - - - - - + + +

Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
+template<typename... Args>
class opencl_node
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00132.png b/doc/html/a00132.png index 4954ba93a5..1e59d8d414 100644 Binary files a/doc/html/a00132.png and b/doc/html/a00132.png differ diff --git a/doc/html/a00133.html b/doc/html/a00133.html index a243a58011..5ad6cd22d4 100644 --- a/doc/html/a00133.html +++ b/doc/html/a00133.html @@ -4,7 +4,7 @@ -tbb::parallel_do_feeder< Item > Class Template Reference +tbb::flow::interface8::opencl_subbuffer< T, Factory > Class Template Reference @@ -33,64 +33,100 @@
-
tbb::parallel_do_feeder< Item > Class Template Referenceabstract
+
tbb::flow::interface8::opencl_subbuffer< T, Factory > Class Template Reference
- -

Class the user supplied algorithm body uses to add new tasks. - More...

- -

#include <parallel_do.h>

-Inheritance diagram for tbb::parallel_do_feeder< Item >:
+Inheritance diagram for tbb::flow::interface8::opencl_subbuffer< T, Factory >:
- - + + +tbb::flow::interface8::opencl_buffer< T, Factory >
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

-void add (const Item &item)
 Add a work item to a running parallel_do.
 
opencl_subbuffer (const opencl_buffer< T, Factory > &owner, size_t index, size_t size)
 
- Public Member Functions inherited from tbb::flow::interface8::opencl_buffer< T, Factory >
+template<access_type a>
iterator< a > access () const
 
+T * data () const
 
+template<access_type a = read_write>
iterator< a > begin () const
 
+template<access_type a = read_write>
iterator< a > end () const
 
+size_t size () const
 
+T & operator[] (ptrdiff_t k)
 
opencl_buffer (opencl_graph &g, size_t size)
 
opencl_buffer (Factory &f, size_t size)
 
+cl_mem native_object () const
 
+const opencl_buffermemory_object () const
 
+void send (opencl_device device, dependency_msg< opencl_buffer, Factory > &dependency) const
 
+void receive (const dependency_msg< opencl_buffer, Factory > &dependency) const
 
+opencl_subbuffer< T, Factory > subbuffer (size_t index, size_t size) const
 
- - - - + + + + + + + + + + +

-Friends

-template<typename Body_ , typename Item_ >
class internal::parallel_do_feeder_impl
 

+Additional Inherited Members

- Public Types inherited from tbb::flow::interface8::opencl_buffer< T, Factory >
+typedef cl_mem native_object_type
 
+typedef opencl_buffer memory_object_type
 
+typedef Factory opencl_factory_type
 
+template<access_type a>
using iterator = T *
 
-

Detailed Description

-

template<typename Item>
-class tbb::parallel_do_feeder< Item >

- -

Class the user supplied algorithm body uses to add new tasks.

-
Parameters
- - -
ItemWork item type
-
-
-

The documentation for this class was generated from the following file:
    -
  • parallel_do.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00133.png b/doc/html/a00133.png index 742cad9d02..397bb71630 100644 Binary files a/doc/html/a00133.png and b/doc/html/a00133.png differ diff --git a/doc/html/a00134.html b/doc/html/a00134.html index 7628cf9b90..fffa28cda9 100644 --- a/doc/html/a00134.html +++ b/doc/html/a00134.html @@ -4,7 +4,7 @@ -tbb::parallel_while< Body > Class Template Reference +tbb::flow::interface8::overwrite_node< T > Class Template Reference @@ -33,130 +33,270 @@
-
tbb::parallel_while< Body > Class Template Reference
+
tbb::flow::interface8::overwrite_node< T > Class Template Reference
- -

Parallel iteration over a stream, with optional addition of more work. - More...

- -

#include <parallel_while.h>

-Inheritance diagram for tbb::parallel_while< Body >:
+Inheritance diagram for tbb::flow::interface8::overwrite_node< T >:
- - + + +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T > +tbb::flow::interface8::write_once_node< T >
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

-typedef Body::argument_type value_type
 Type of items.
 
+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef receiver< input_type >
+::built_predecessors_type 
built_predecessors_type
 
+typedef sender< output_type >
+::built_successors_type 
built_successors_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

parallel_while ()
 Construct empty non-running parallel while.
 
~parallel_while ()
 Destructor cleans up data members before returning.
 
template<typename Stream >
void run (Stream &stream, const Body &body)
 Apply body.apply to each item in the stream. More...
 
void add (const value_type &item)
 Add a work item while running. More...
 
overwrite_node (graph &g)
 
overwrite_node (const overwrite_node &src)
 
+void set_name (const char *name)
 
+bool register_successor (successor_type &s)
 Add a new successor to this node.
 
+bool remove_successor (successor_type &s)
 Removes a successor from this node.
 
+built_predecessors_typebuilt_predecessors ()
 
+built_successors_typebuilt_successors ()
 
+void internal_add_built_successor (successor_type &s)
 
+void internal_delete_built_successor (successor_type &s)
 
+size_t successor_count ()
 
+void copy_successors (successor_list_type &v)
 
+void internal_add_built_predecessor (predecessor_type &p)
 
+void internal_delete_built_predecessor (predecessor_type &p)
 
+size_t predecessor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void extract ()
 
+bool try_get (input_type &v)
 Request an item from the sender.
 
+bool is_valid ()
 
+void clear ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
+virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
+virtual bool try_release ()
 Releases the reserved item.
 
+virtual bool try_consume ()
 Consumes the reserved item.
 
+ + + + + + + + + + +

+Protected Member Functions

+task * try_put_task (const input_type &v)
 
+void reset_receiver (reset_flags)
 
+void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual bool is_continue_receiver ()
 
+ + + + + + + + + + + + + + + + + + +

+Protected Attributes

+spin_mutex my_mutex
 
+internal::broadcast_cache
+< input_type, null_rw_mutex
my_successors
 
+internal::edge_container
+< predecessor_type
my_built_predecessors
 
+input_type my_buffer
 
+bool my_buffer_is_valid
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 
+ + + + + + + + + +

+Friends

+template<typename R , typename B >
class run_and_put_task
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
-

Detailed Description

-

template<typename Body>
-class tbb::parallel_while< Body >

- -

Parallel iteration over a stream, with optional addition of more work.

-

The Body b has the requirement:
- "b(v)"
- "b.argument_type"
- where v is an argument_type

-

Member Function Documentation

- -
-
-
-template<typename Body >
- - - - - - - - -
void tbb::parallel_while< Body >::add (const value_typeitem)
-
- -

Add a work item while running.

-

Should be executed only by body.apply or a thread spawned therefrom.

- -
-
- -
-
-
-template<typename Body >
-
-template<typename Stream >
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_while< Body >::run (Stream & stream,
const Body & body 
)
-
- -

Apply body.apply to each item in the stream.

-

A Stream s has the requirements
- "S::value_type"
- "s.pop_if_present(value) is convertible to bool

- -
-

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00134.png b/doc/html/a00134.png index fc86480fb6..4954ba93a5 100644 Binary files a/doc/html/a00134.png and b/doc/html/a00134.png differ diff --git a/doc/html/a00135.html b/doc/html/a00135.html index 26fe190e18..bb5e121e6a 100644 --- a/doc/html/a00135.html +++ b/doc/html/a00135.html @@ -4,7 +4,7 @@ -tbb::pipeline Class Reference +tbb::parallel_do_feeder< Item > Class Template Reference @@ -33,104 +33,64 @@
-
tbb::pipeline Class Reference
+
tbb::parallel_do_feeder< Item > Class Template Referenceabstract
-

A processing pipeline that applies filters to items. +

Class the user supplied algorithm body uses to add new tasks. More...

-

#include <pipeline.h>

+

#include <parallel_do.h>

+
+Inheritance diagram for tbb::parallel_do_feeder< Item >:
+
+
+ + + +
- - - - - - - - - - - - - - - - - + + +

Public Member Functions

-__TBB_EXPORTED_METHOD pipeline ()
 Construct empty pipeline.
 
virtual __TBB_EXPORTED_METHOD ~pipeline ()
 
-void __TBB_EXPORTED_METHOD add_filter (filter &filter_)
 Add filter to end of pipeline.
 
-void __TBB_EXPORTED_METHOD run (size_t max_number_of_live_tokens)
 Run the pipeline to completion.
 
-void __TBB_EXPORTED_METHOD run (size_t max_number_of_live_tokens, tbb::task_group_context &context)
 Run the pipeline to completion with user-supplied context.
 
-void __TBB_EXPORTED_METHOD clear ()
 Remove all filters from the pipeline.
 
+void add (const Item &item)
 Add a work item to a running parallel_do.
 
- - - - - - - - - - - - + + +

Friends

-class internal::stage_task
 
-class internal::pipeline_root_task
 
-class filter
 
-class thread_bound_filter
 
-class internal::pipeline_cleaner
 
-class tbb::interface6::internal::pipeline_proxy
 
+template<typename Body_ , typename Item_ >
class internal::parallel_do_feeder_impl
 

Detailed Description

-

A processing pipeline that applies filters to items.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
virtual __TBB_EXPORTED_METHOD tbb::pipeline::~pipeline ()
-
-virtual
-
-

Though the current implementation declares the destructor virtual, do not rely on this detail. The virtualness is deprecated and may disappear in future versions of TBB.

+

template<typename Item>
+class tbb::parallel_do_feeder< Item >

-
-
-
The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • +

    Class the user supplied algorithm body uses to add new tasks.

    +
    Parameters
    + + +
    ItemWork item type
    +
    +
    +

The documentation for this class was generated from the following file:
    +
  • parallel_do.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00135.png b/doc/html/a00135.png new file mode 100644 index 0000000000..742cad9d02 Binary files /dev/null and b/doc/html/a00135.png differ diff --git a/doc/html/a00136.html b/doc/html/a00136.html index f0fc4cf584..f2fb79c9e6 100644 --- a/doc/html/a00136.html +++ b/doc/html/a00136.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::port_ref_impl< N1, N2 > Struct Template Reference +tbb::parallel_while< Body > Class Template Reference @@ -33,31 +33,130 @@
-
tbb::flow::interface8::port_ref_impl< N1, N2 > Struct Template Reference
+
tbb::parallel_while< Body > Class Template Reference
+ +

Parallel iteration over a stream, with optional addition of more work. + More...

+ +

#include <parallel_while.h>

+
+Inheritance diagram for tbb::parallel_while< Body >:
+
+
+ + + +
- - - + + + + +

-Static Public Attributes

-static const int size = N2-N1+1
 

+Public Types

+typedef Body::argument_type value_type
 Type of items.
 
+ + + + + + + + + + + + + +

+Public Member Functions

parallel_while ()
 Construct empty non-running parallel while.
 
~parallel_while ()
 Destructor cleans up data members before returning.
 
template<typename Stream >
void run (Stream &stream, const Body &body)
 Apply body.apply to each item in the stream. More...
 
void add (const value_type &item)
 Add a work item while running. More...
 
-
The documentation for this struct was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +

    Detailed Description

    +

    template<typename Body>
    +class tbb::parallel_while< Body >

    + +

    Parallel iteration over a stream, with optional addition of more work.

    +

    The Body b has the requirement:
    + "b(v)"
    + "b.argument_type"
    + where v is an argument_type

    +

    Member Function Documentation

    + +
    +
    +
    +template<typename Body >
    + + + + + + + + +
    void tbb::parallel_while< Body >::add (const value_typeitem)
    +
    + +

    Add a work item while running.

    +

    Should be executed only by body.apply or a thread spawned therefrom.

    + +
    +
    + +
    +
    +
    +template<typename Body >
    +
    +template<typename Stream >
    + + + + + + + + + + + + + + + + + + +
    void tbb::parallel_while< Body >::run (Stream & stream,
    const Body & body 
    )
    +
    + +

    Apply body.apply to each item in the stream.

    +

    A Stream s has the requirements
    + "S::value_type"
    + "s.pop_if_present(value) is convertible to bool

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • parallel_while.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00136.png b/doc/html/a00136.png new file mode 100644 index 0000000000..fc86480fb6 Binary files /dev/null and b/doc/html/a00136.png differ diff --git a/doc/html/a00137.html b/doc/html/a00137.html index 5279c13918..029c0f4bbb 100644 --- a/doc/html/a00137.html +++ b/doc/html/a00137.html @@ -4,7 +4,7 @@ -tbb::pre_scan_tag Struct Reference +tbb::pipeline Class Reference @@ -33,38 +33,104 @@
-
tbb::pre_scan_tag Struct Reference
+
tbb::pipeline Class Reference
-

Used to indicate that the initial scan is being performed. +

A processing pipeline that applies filters to items. More...

-

#include <parallel_scan.h>

+

#include <pipeline.h>

- - - + + + + + + + + + + + + + + + + + + +

-Static Public Member Functions

-static bool is_final_scan ()
 

+Public Member Functions

+__TBB_EXPORTED_METHOD pipeline ()
 Construct empty pipeline.
 
virtual __TBB_EXPORTED_METHOD ~pipeline ()
 
+void __TBB_EXPORTED_METHOD add_filter (filter &filter_)
 Add filter to end of pipeline.
 
+void __TBB_EXPORTED_METHOD run (size_t max_number_of_live_tokens)
 Run the pipeline to completion.
 
+void __TBB_EXPORTED_METHOD run (size_t max_number_of_live_tokens, tbb::task_group_context &context)
 Run the pipeline to completion with user-supplied context.
 
+void __TBB_EXPORTED_METHOD clear ()
 Remove all filters from the pipeline.
 
+ + + + + + + + + + + + +

+Friends

+class internal::stage_task
 
+class internal::pipeline_root_task
 
+class filter
 
+class thread_bound_filter
 
+class internal::pipeline_cleaner
 
+class tbb::interface6::internal::pipeline_proxy
 

Detailed Description

-

Used to indicate that the initial scan is being performed.

-

The documentation for this struct was generated from the following file:
    -
  • parallel_scan.h
  • +

    A processing pipeline that applies filters to items.

    +

    Constructor & Destructor Documentation

    + +
    +
    + + + + + +
    + + + + + + + +
    virtual __TBB_EXPORTED_METHOD tbb::pipeline::~pipeline ()
    +
    +virtual
    +
    +

    Though the current implementation declares the destructor virtual, do not rely on this detail. The virtualness is deprecated and may disappear in future versions of TBB.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • pipeline.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00138.html b/doc/html/a00138.html index e5ec7edac1..b7774fcbd7 100644 --- a/doc/html/a00138.html +++ b/doc/html/a00138.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::priority_queue_node< T, Compare, A > Class Template Reference +tbb::flow::interface8::port_ref_impl< N1, N2 > Struct Template Reference @@ -33,394 +33,31 @@
-
tbb::flow::interface8::priority_queue_node< T, Compare, A > Class Template Reference
+
tbb::flow::interface8::port_ref_impl< N1, N2 > Struct Template Reference
- -

Forwards messages in priority order. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::priority_queue_node< T, Compare, A >:
-
-
- - -tbb::flow::interface8::buffer_node< T, A > -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef buffer_node< T, A > base_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::buffer_node< T, A >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef buffer_node< T, A > class_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

priority_queue_node (graph &g)
 Constructor.
 
priority_queue_node (const priority_queue_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
-void internal_add_built_successor (successor_type &r)
 
-void internal_delete_built_successor (successor_type &r)
 
-void internal_add_built_predecessor (predecessor_type &p)
 
-void internal_delete_built_predecessor (predecessor_type &p)
 
-size_t predecessor_count ()
 
-size_t successor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- - - - - - - - - - - - - - - - - - - - - - -

-Protected Types

enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef buffer_node< T, A >
-::size_type 
size_type
 
-typedef buffer_node< T, A >
-::item_type 
item_type
 
-typedef buffer_node< T, A >
-::buffer_operation 
prio_operation
 
- Protected Types inherited from tbb::flow::interface8::buffer_node< T, A >
enum  op_type {
-  reg_succ, -rem_succ, -req_item, -res_item, -
-  rel_res, -con_res, -put_item, -try_fwd_task, -
-  add_blt_succ, -del_blt_succ, -add_blt_pred, -del_blt_pred, -
-  blt_succ_cnt, -blt_pred_cnt, -blt_succ_cpy, -blt_pred_cpy -
- }
 
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef size_t size_type
 
-typedef
-internal::aggregating_functor
-< class_type, buffer_operation
handler_type
 
-typedef sender< T >
-::built_successors_type 
built_successors_type
 
-typedef receiver< T >
-::built_predecessors_type 
built_predecessors_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

-void reset_node (reset_flags f)
 
-void handle_operations (prio_operation *op_list)
 
-void internal_forward_task (prio_operation *op)
 Tries to forward valid items to successors.
 
-void internal_push (prio_operation *op)
 
-void internal_pop (prio_operation *op)
 
-void internal_reserve (prio_operation *op)
 
-void internal_consume (prio_operation *op)
 
-void internal_release (prio_operation *op)
 
- Protected Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
-task * grab_forwarding_task (buffer_operation &op_data)
 
-bool enqueue_forwarding_task (buffer_operation &op_data)
 
-virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
-virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
-virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
-built_successors_typebuilt_successors ()
 
-virtual void internal_add_built_succ (buffer_operation *op)
 
-virtual void internal_del_built_succ (buffer_operation *op)
 
-built_predecessors_typebuilt_predecessors ()
 
-virtual void internal_add_built_pred (buffer_operation *op)
 
-virtual void internal_del_built_pred (buffer_operation *op)
 
-virtual void internal_succ_cnt (buffer_operation *op)
 
-virtual void internal_pred_cnt (buffer_operation *op)
 
-virtual void internal_copy_succs (buffer_operation *op)
 
-virtual void internal_copy_preds (buffer_operation *op)
 
-task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
-void reset_receiver (reset_flags)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::buffer_node< T, A >
-internal::round_robin_cache< T,
-null_rw_mutex
my_successors
 
-internal::edge_container
-< predecessor_type
my_built_predecessors
 
-bool forwarder_busy
 
-internal::aggregator
-< handler_type,
-buffer_operation
my_aggregator
 

+Static Public Attributes

+static const int size = N2-N1+1
 
-

Detailed Description

-

template<typename T, typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
-class tbb::flow::interface8::priority_queue_node< T, Compare, A >

- -

Forwards messages in priority order.

-

The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00138.png b/doc/html/a00138.png deleted file mode 100644 index d3e88b55a6..0000000000 Binary files a/doc/html/a00138.png and /dev/null differ diff --git a/doc/html/a00139.html b/doc/html/a00139.html index f3a686c7f1..7c06ae5936 100644 --- a/doc/html/a00139.html +++ b/doc/html/a00139.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::proxy_dependency_receiver< T, Factory > Class Template Reference +tbb::pre_scan_tag Struct Reference @@ -33,90 +33,38 @@
-
tbb::flow::interface8::proxy_dependency_receiver< T, Factory > Class Template Reference
+
tbb::pre_scan_tag Struct Reference
-
-Inheritance diagram for tbb::flow::interface8::proxy_dependency_receiver< T, Factory >:
-
-
- - -tbb::flow::interface8::receiver< dependency_msg< T, Factory > > - -
+ +

Used to indicate that the initial scan is being performed. + More...

+ +

#include <parallel_scan.h>

- - - - - - - - - -

-Public Types

-typedef sender< dependency_msg
-< T, Factory > > 
dependency_predecessor_type
 
- Public Types inherited from tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
-typedef sender< dependency_msg
-< T, Factory > > 
dependency_predecessor_type
 The predecessor type for this node.
 
-typedef
-proxy_dependency_receiver< T,
-Factory > 
proxy
 
- - - - - - - - - - - - - - - - - - -

-Public Member Functions

proxy_dependency_receiver (receiver< T > &r)
 
-task * try_put_task (const dependency_msg< T, Factory > &d)
 Put an item to the receiver.
 
-bool register_predecessor (dependency_predecessor_type &s)
 Add a predecessor to the node.
 
-bool remove_predecessor (dependency_predecessor_type &s)
 Remove a predecessor from the node.
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
-bool try_put (const T &t)
 Put an item to the receiver.
 
-ordinary_receiver & ordinary_receiver ()
 
- - - - - - + + +

-Protected Member Functions

-void reset_receiver (reset_flags f=rf_reset_protocol)
 put receiver back in initial state
 
-bool is_continue_receiver ()
 

+Static Public Member Functions

+static bool is_final_scan ()
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +

    Detailed Description

    +

    Used to indicate that the initial scan is being performed.

    +

    The documentation for this struct was generated from the following file:
      +
    • parallel_scan.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00139.png b/doc/html/a00139.png deleted file mode 100644 index 68da7369fe..0000000000 Binary files a/doc/html/a00139.png and /dev/null differ diff --git a/doc/html/a00140.html b/doc/html/a00140.html index 464b9f3188..c2befe74c7 100644 --- a/doc/html/a00140.html +++ b/doc/html/a00140.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::proxy_dependency_sender< T, Factory > Class Template Reference +tbb::flow::interface8::priority_queue_node< T, Compare, A > Class Template Reference @@ -33,90 +33,394 @@
-
tbb::flow::interface8::proxy_dependency_sender< T, Factory > Class Template Reference
+
tbb::flow::interface8::priority_queue_node< T, Compare, A > Class Template Reference
+ +

Forwards messages in priority order. + More...

+ +

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::proxy_dependency_sender< T, Factory >:
+Inheritance diagram for tbb::flow::interface8::priority_queue_node< T, Compare, A >:
- - -tbb::flow::interface8::sender< dependency_msg< T, Factory > > + + +tbb::flow::interface8::buffer_node< T, A > +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T >
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - +internal::edge_container
+< predecessor_type >  + + + + + + + + + + + + + + +

Public Types

-typedef receiver
-< dependency_msg< T, Factory > > 
dependency_successor_type
 
- Public Types inherited from tbb::flow::interface8::sender< dependency_msg< T, Factory > >
-typedef receiver
-< dependency_msg< T, Factory > > 
dependency_successor_type
 The successor type for this sender.
 
+
+typedef T input_type
 
+typedef T output_type
 
+typedef buffer_node< T, A > base_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::buffer_node< T, A >
+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef buffer_node< T, A > class_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
typedef
-proxy_dependency_sender< T,
-Factory > 
proxy
 
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

proxy_dependency_sender (sender< T > &s)
 
-bool register_successor (dependency_successor_type &r)
 Add a new successor to this node.
 
-bool remove_successor (dependency_successor_type &r)
 Removes a successor from this node.
 
-bool try_get (dependency_msg< T, Factory > &d)
 Request an item from the sender.
 
-bool try_reserve (dependency_msg< T, Factory > &d)
 Reserves an item in the sender.
 
-bool try_release ()
 Releases the reserved item.
 
-bool try_consume ()
 Consumes the reserved item.
 
- Public Member Functions inherited from tbb::flow::interface8::sender< dependency_msg< T, Factory > >
-ordinary_sender & ordinary_sender ()
 
-bool has_host_successors ()
 
priority_queue_node (graph &g)
 Constructor.
 
priority_queue_node (const priority_queue_node &src)
 Copy constructor.
 
+void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
+void internal_add_built_successor (successor_type &r)
 
+void internal_delete_built_successor (successor_type &r)
 
+void internal_add_built_predecessor (predecessor_type &p)
 
+void internal_delete_built_predecessor (predecessor_type &p)
 
+size_t predecessor_count ()
 
+size_t successor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Protected Types

enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef buffer_node< T, A >
+::size_type 
size_type
 
+typedef buffer_node< T, A >
+::item_type 
item_type
 
+typedef buffer_node< T, A >
+::buffer_operation 
prio_operation
 
- Protected Types inherited from tbb::flow::interface8::buffer_node< T, A >
enum  op_type {
+  reg_succ, +rem_succ, +req_item, +res_item, +
+  rel_res, +con_res, +put_item, +try_fwd_task, +
+  add_blt_succ, +del_blt_succ, +add_blt_pred, +del_blt_pred, +
+  blt_succ_cnt, +blt_pred_cnt, +blt_succ_cpy, +blt_pred_cpy +
+ }
 
enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef size_t size_type
 
+typedef
+internal::aggregating_functor
+< class_type, buffer_operation
handler_type
 
+typedef sender< T >
+::built_successors_type 
built_successors_type
 
+typedef receiver< T >
+::built_predecessors_type 
built_predecessors_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

+void reset_node (reset_flags f)
 
+void handle_operations (prio_operation *op_list)
 
+void internal_forward_task (prio_operation *op)
 Tries to forward valid items to successors.
 
+void internal_push (prio_operation *op)
 
+void internal_pop (prio_operation *op)
 
+void internal_reserve (prio_operation *op)
 
+void internal_consume (prio_operation *op)
 
+void internal_release (prio_operation *op)
 
- Protected Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
+task * grab_forwarding_task (buffer_operation &op_data)
 
+bool enqueue_forwarding_task (buffer_operation &op_data)
 
+virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
+virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
+virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
+built_successors_typebuilt_successors ()
 
+virtual void internal_add_built_succ (buffer_operation *op)
 
+virtual void internal_del_built_succ (buffer_operation *op)
 
+built_predecessors_typebuilt_predecessors ()
 
+virtual void internal_add_built_pred (buffer_operation *op)
 
+virtual void internal_del_built_pred (buffer_operation *op)
 
+virtual void internal_succ_cnt (buffer_operation *op)
 
+virtual void internal_pred_cnt (buffer_operation *op)
 
+virtual void internal_copy_succs (buffer_operation *op)
 
+virtual void internal_copy_preds (buffer_operation *op)
 
+task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
+void reset_receiver (reset_flags)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual bool is_continue_receiver ()
 
+ + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::buffer_node< T, A >
+internal::round_robin_cache< T,
+null_rw_mutex
my_successors
 
+internal::edge_container
+< predecessor_type
my_built_predecessors
 
+bool forwarder_busy
 
+internal::aggregator
+< handler_type,
+buffer_operation
my_aggregator
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +

    Detailed Description

    +

    template<typename T, typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
    +class tbb::flow::interface8::priority_queue_node< T, Compare, A >

    + +

    Forwards messages in priority order.

    +

    The documentation for this class was generated from the following file:

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00140.png b/doc/html/a00140.png index 3aea1666dc..d3e88b55a6 100644 Binary files a/doc/html/a00140.png and b/doc/html/a00140.png differ diff --git a/doc/html/a00141.html b/doc/html/a00141.html index c7ef2042bf..4ec279e9fb 100644 --- a/doc/html/a00141.html +++ b/doc/html/a00141.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::queue_node< T, A > Class Template Reference +tbb::flow::interface8::proxy_dependency_receiver< T, Factory > Class Template Reference @@ -33,389 +33,90 @@
-
tbb::flow::interface8::queue_node< T, A > Class Template Reference
+
tbb::flow::interface8::proxy_dependency_receiver< T, Factory > Class Template Reference
- -

Forwards messages in FIFO order. - More...

- -

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::queue_node< T, A >:
+Inheritance diagram for tbb::flow::interface8::proxy_dependency_receiver< T, Factory >:
- - -tbb::flow::interface8::buffer_node< T, A > -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > -tbb::flow::interface8::sequencer_node< T, A > + + +tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - +proxy_dependency_receiver< T,
+Factory >  +

Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::buffer_node< T, A >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef buffer_node< T, A > class_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+
+typedef sender< dependency_msg
+< T, Factory > > 
predecessor_type
 
- Public Types inherited from tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
+typedef sender< dependency_msg
+< T, Factory > > 
predecessor_type
 The predecessor type for this node.
 
typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
proxy
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

queue_node (graph &g)
 Constructor.
 
queue_node (const queue_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
-void internal_add_built_successor (successor_type &r)
 
-void internal_delete_built_successor (successor_type &r)
 
-void internal_add_built_predecessor (predecessor_type &p)
 
-void internal_delete_built_predecessor (predecessor_type &p)
 
-size_t predecessor_count ()
 
-size_t successor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +

-Protected Types

enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef buffer_node< T, A > base_type
 
-typedef base_type::size_type size_type
 
-typedef base_type::buffer_operation queue_operation
 
- Protected Types inherited from tbb::flow::interface8::buffer_node< T, A >
enum  op_type {
-  reg_succ, -rem_succ, -req_item, -res_item, -
-  rel_res, -con_res, -put_item, -try_fwd_task, -
-  add_blt_succ, -del_blt_succ, -add_blt_pred, -del_blt_pred, -
-  blt_succ_cnt, -blt_pred_cnt, -blt_succ_cpy, -blt_pred_cpy -
- }
 
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef size_t size_type
 
-typedef
-internal::aggregating_functor
-< class_type, buffer_operation
handler_type
 
-typedef sender< T >
-::built_successors_type 
built_successors_type
 
-typedef receiver< T >
-::built_predecessors_type 
built_predecessors_type
 
proxy_dependency_receiver (receiver< T > &r)
 
+task * try_put_task (const dependency_msg< T, Factory > &d)
 Put an item to the receiver.
 
+bool register_predecessor (predecessor_type &s)
 Add a predecessor to the node.
 
+bool remove_predecessor (predecessor_type &s)
 Remove a predecessor from the node.
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
+bool try_put (const T &t)
 Put an item to the receiver.
 
+ordinary_receiver & ordinary_receiver ()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Protected Member Functions

-void internal_forward_task (queue_operation *op)
 Tries to forward valid items to successors.
 
-void internal_pop (queue_operation *op)
 
-void internal_reserve (queue_operation *op)
 
-void internal_consume (queue_operation *op)
 
-void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
-virtual void handle_operations (buffer_operation *op_list)
 
-task * grab_forwarding_task (buffer_operation &op_data)
 
-bool enqueue_forwarding_task (buffer_operation &op_data)
 
-virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
-virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
-virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
-built_successors_typebuilt_successors ()
 
-virtual void internal_add_built_succ (buffer_operation *op)
 
-virtual void internal_del_built_succ (buffer_operation *op)
 
-built_predecessors_typebuilt_predecessors ()
 
-virtual void internal_add_built_pred (buffer_operation *op)
 
-virtual void internal_del_built_pred (buffer_operation *op)
 
-virtual void internal_succ_cnt (buffer_operation *op)
 
-virtual void internal_pred_cnt (buffer_operation *op)
 
-virtual void internal_copy_succs (buffer_operation *op)
 
-virtual void internal_copy_preds (buffer_operation *op)
 
-virtual void internal_push (buffer_operation *op)
 
-virtual void internal_release (buffer_operation *op)
 
-task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
-void reset_receiver (reset_flags)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - + + + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::buffer_node< T, A >
-internal::round_robin_cache< T,
-null_rw_mutex
my_successors
 
-internal::edge_container
-< predecessor_type
my_built_predecessors
 
-bool forwarder_busy
 
-internal::aggregator
-< handler_type,
-buffer_operation
my_aggregator
 
+void reset_receiver (reset_flags f=rf_reset_protocol)
 put receiver back in initial state
 
+bool is_continue_receiver ()
 
-

Detailed Description

-

template<typename T, typename A = cache_aligned_allocator<T>>
-class tbb::flow::interface8::queue_node< T, A >

- -

Forwards messages in FIFO order.

-

The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00141.png b/doc/html/a00141.png index 8ad3fc1358..68da7369fe 100644 Binary files a/doc/html/a00141.png and b/doc/html/a00141.png differ diff --git a/doc/html/a00142.html b/doc/html/a00142.html index fe92dfad4a..f9db92162b 100644 --- a/doc/html/a00142.html +++ b/doc/html/a00142.html @@ -4,7 +4,7 @@ -tbb::queuing_mutex Class Reference +tbb::flow::interface8::proxy_dependency_sender< T, Factory > Class Template Reference @@ -33,70 +33,90 @@
-
tbb::queuing_mutex Class Reference
+
tbb::flow::interface8::proxy_dependency_sender< T, Factory > Class Template Reference
- -

Queuing mutex with local-only spinning. - More...

- -

#include <queuing_mutex.h>

-Inheritance diagram for tbb::queuing_mutex:
+Inheritance diagram for tbb::flow::interface8::proxy_dependency_sender< T, Factory >:
- - + + +tbb::flow::interface8::sender< dependency_msg< T, Factory > >
- - - - + + + + + + + + +

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 

+Public Types

+typedef receiver
+< dependency_msg< T, Factory > > 
successor_type
 
- Public Types inherited from tbb::flow::interface8::sender< dependency_msg< T, Factory > >
+typedef receiver
+< dependency_msg< T, Factory > > 
successor_type
 The successor type for this sender.
 
+typedef
+proxy_dependency_sender< T,
+Factory > 
proxy
 
- - - - - -

Public Member Functions

queuing_mutex ()
 Construct unacquired mutex.
 
-void __TBB_EXPORTED_METHOD internal_construct ()
 
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + +

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = true
 
proxy_dependency_sender (sender< T > &s)
 
+bool register_successor (successor_type &r)
 Add a new successor to this node.
 
+bool remove_successor (successor_type &r)
 Removes a successor from this node.
 
+bool try_get (dependency_msg< T, Factory > &d)
 Request an item from the sender.
 
+bool try_reserve (dependency_msg< T, Factory > &d)
 Reserves an item in the sender.
 
+bool try_release ()
 Releases the reserved item.
 
+bool try_consume ()
 Consumes the reserved item.
 
- Public Member Functions inherited from tbb::flow::interface8::sender< dependency_msg< T, Factory > >
+ordinary_sender & ordinary_sender ()
 
+bool has_host_successors ()
 
-

Detailed Description

-

Queuing mutex with local-only spinning.

-

The documentation for this class was generated from the following file:
    -
  • queuing_mutex.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00142.png b/doc/html/a00142.png index 97f8b53bdb..3aea1666dc 100644 Binary files a/doc/html/a00142.png and b/doc/html/a00142.png differ diff --git a/doc/html/a00143.html b/doc/html/a00143.html index 25834f36ad..4fa5156c55 100644 --- a/doc/html/a00143.html +++ b/doc/html/a00143.html @@ -4,7 +4,7 @@ -tbb::queuing_rw_mutex Class Reference +tbb::flow::interface8::queue_node< T, A > Class Template Reference @@ -33,75 +33,389 @@
-
tbb::queuing_rw_mutex Class Reference
+
tbb::flow::interface8::queue_node< T, A > Class Template Reference
-

Queuing reader-writer mutex with local-only spinning. +

Forwards messages in FIFO order. More...

-

#include <queuing_rw_mutex.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::queuing_rw_mutex:
+Inheritance diagram for tbb::flow::interface8::queue_node< T, A >:
- - + + +tbb::flow::interface8::buffer_node< T, A > +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T > +tbb::flow::interface8::sequencer_node< T, A >
- - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 

+Public Types

+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::buffer_node< T, A >
+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef buffer_node< T, A > class_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

queuing_rw_mutex ()
 Construct unacquired mutex.
 
~queuing_rw_mutex ()
 Destructor asserts if the mutex is acquired, i.e. q_tail is non-NULL.
 
-void __TBB_EXPORTED_METHOD internal_construct ()
 
queue_node (graph &g)
 Constructor.
 
queue_node (const queue_node &src)
 Copy constructor.
 
+void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
+void internal_add_built_successor (successor_type &r)
 
+void internal_delete_built_successor (successor_type &r)
 
+void internal_add_built_predecessor (predecessor_type &p)
 
+void internal_delete_built_predecessor (predecessor_type &p)
 
+size_t predecessor_count ()
 
+size_t successor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + +

-Static Public Attributes

-static const bool is_rw_mutex = true
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = true
 

+Protected Types

enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef buffer_node< T, A > base_type
 
+typedef base_type::size_type size_type
 
+typedef base_type::buffer_operation queue_operation
 
- Protected Types inherited from tbb::flow::interface8::buffer_node< T, A >
enum  op_type {
+  reg_succ, +rem_succ, +req_item, +res_item, +
+  rel_res, +con_res, +put_item, +try_fwd_task, +
+  add_blt_succ, +del_blt_succ, +add_blt_pred, +del_blt_pred, +
+  blt_succ_cnt, +blt_pred_cnt, +blt_succ_cpy, +blt_pred_cpy +
+ }
 
enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef size_t size_type
 
+typedef
+internal::aggregating_functor
+< class_type, buffer_operation
handler_type
 
+typedef sender< T >
+::built_successors_type 
built_successors_type
 
+typedef receiver< T >
+::built_predecessors_type 
built_predecessors_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

+void internal_forward_task (queue_operation *op)
 Tries to forward valid items to successors.
 
+void internal_pop (queue_operation *op)
 
+void internal_reserve (queue_operation *op)
 
+void internal_consume (queue_operation *op)
 
+void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
+virtual void handle_operations (buffer_operation *op_list)
 
+task * grab_forwarding_task (buffer_operation &op_data)
 
+bool enqueue_forwarding_task (buffer_operation &op_data)
 
+virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
+virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
+virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
+built_successors_typebuilt_successors ()
 
+virtual void internal_add_built_succ (buffer_operation *op)
 
+virtual void internal_del_built_succ (buffer_operation *op)
 
+built_predecessors_typebuilt_predecessors ()
 
+virtual void internal_add_built_pred (buffer_operation *op)
 
+virtual void internal_del_built_pred (buffer_operation *op)
 
+virtual void internal_succ_cnt (buffer_operation *op)
 
+virtual void internal_pred_cnt (buffer_operation *op)
 
+virtual void internal_copy_succs (buffer_operation *op)
 
+virtual void internal_copy_preds (buffer_operation *op)
 
+virtual void internal_push (buffer_operation *op)
 
+virtual void internal_release (buffer_operation *op)
 
+task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
+void reset_receiver (reset_flags)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual bool is_continue_receiver ()
 
+ + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::buffer_node< T, A >
+internal::round_robin_cache< T,
+null_rw_mutex
my_successors
 
+internal::edge_container
+< predecessor_type
my_built_predecessors
 
+bool forwarder_busy
 
+internal::aggregator
+< handler_type,
+buffer_operation
my_aggregator
 

Detailed Description

-

Queuing reader-writer mutex with local-only spinning.

-

Adapted from Krieger, Stumm, et al. pseudocode at http://www.eecg.toronto.edu/parallel/pubs_abs.html#Krieger_etal_ICPP93

+

template<typename T, typename A = cache_aligned_allocator<T>>
+class tbb::flow::interface8::queue_node< T, A >

+ +

Forwards messages in FIFO order.


The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00143.png b/doc/html/a00143.png index aeda94ccfe..8ad3fc1358 100644 Binary files a/doc/html/a00143.png and b/doc/html/a00143.png differ diff --git a/doc/html/a00144.html b/doc/html/a00144.html index 39e882528b..00b5e642cf 100644 --- a/doc/html/a00144.html +++ b/doc/html/a00144.html @@ -4,7 +4,7 @@ -tbb::interface5::reader_writer_lock Class Reference +tbb::queuing_mutex Class Reference @@ -33,196 +33,70 @@
-
tbb::interface5::reader_writer_lock Class Reference
+
tbb::queuing_mutex Class Reference
-

Writer-preference reader-writer lock with local-only spinning on readers. +

Queuing mutex with local-only spinning. More...

-

#include <reader_writer_lock.h>

+

#include <queuing_mutex.h>

-Inheritance diagram for tbb::interface5::reader_writer_lock:
+Inheritance diagram for tbb::queuing_mutex:
- - + +
- - + + - - - -

Classes

class  scoped_lock
 The scoped lock pattern for write locks. More...
class  scoped_lock
 The scoped locking pattern. More...
 
class  scoped_lock_read
 The scoped lock pattern for read locks. More...
 
- - - -

-Public Types

enum  status_t { waiting_nonblocking, -waiting, -active, -invalid - }
 Status type for nodes associated with lock instances. More...
 
- - - - - - - - - - - - - - - - - - - - - + + + + +

Public Member Functions

reader_writer_lock ()
 Constructs a new reader_writer_lock.
 
~reader_writer_lock ()
 Destructs a reader_writer_lock object.
 
void __TBB_EXPORTED_METHOD lock ()
 Acquires the reader_writer_lock for write. More...
 
bool __TBB_EXPORTED_METHOD try_lock ()
 Tries to acquire the reader_writer_lock for write. More...
 
void __TBB_EXPORTED_METHOD lock_read ()
 Acquires the reader_writer_lock for read. More...
 
bool __TBB_EXPORTED_METHOD try_lock_read ()
 Tries to acquire the reader_writer_lock for read. More...
 
-void __TBB_EXPORTED_METHOD unlock ()
 Releases the reader_writer_lock.
 
queuing_mutex ()
 Construct unacquired mutex.
 
+void __TBB_EXPORTED_METHOD internal_construct ()
 
- - - - - + + + + + + +

-Friends

-class scoped_lock
 
-class scoped_lock_read
 

+Static Public Attributes

+static const bool is_rw_mutex = false
 
+static const bool is_recursive_mutex = false
 
+static const bool is_fair_mutex = true
 

Detailed Description

-

Writer-preference reader-writer lock with local-only spinning on readers.

-

Loosely adapted from Mellor-Crummey and Scott pseudocode at http://www.cs.rochester.edu/research/synchronization/pseudocode/rw.html#s_wp

-

Member Enumeration Documentation

- -
-
- -

Status type for nodes associated with lock instances.

-

waiting_nonblocking: the wait state for nonblocking lock instances; for writes, these transition straight to active states; for reads, these are unused.

-

waiting: the start and spin state for all lock instances; these will transition to active state when appropriate. Non-blocking write locks transition from this state to waiting_nonblocking immediately.

-

active: the active state means that the lock instance holds the lock; it will transition to invalid state during node deletion

-

invalid: the end state for all nodes; this is set in the destructor so if we encounter this state, we are looking at memory that has already been freed

-

The state diagrams below describe the status transitions. Single arrows indicate that the thread that owns the node is responsible for the transition; double arrows indicate that any thread could make the transition.

-

State diagram for scoped_lock status:

-

waiting -------—> waiting_nonblocking | _____________/ | V V V active --------------—> invalid

-

State diagram for scoped_lock_read status:

-

waiting | V active --------------—>invalid

- -
-
-

Member Function Documentation

- -
-
- - - - - - - -
void __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::lock ()
-
- -

Acquires the reader_writer_lock for write.

-

If the lock is currently held in write mode by another context, the writer will block by spinning on a local variable. Exceptions thrown: improper_lock The context tries to acquire a reader_writer_lock that it already has write ownership of.

- -
-
- -
-
- - - - - - - -
void __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::lock_read ()
-
- -

Acquires the reader_writer_lock for read.

-

If the lock is currently held by a writer, this reader will block and wait until the writers are done. Exceptions thrown: improper_lock The context tries to acquire a reader_writer_lock that it already has write ownership of.

- -
-
- -
-
- - - - - - - -
bool __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::try_lock ()
-
- -

Tries to acquire the reader_writer_lock for write.

-

This function does not block. Return Value: True or false, depending on whether the lock is acquired or not. If the lock is already held by this acquiring context, try_lock() returns false.

- -
-
- -
-
- - - - - - - -
bool __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::try_lock_read ()
-
- -

Tries to acquire the reader_writer_lock for read.

-

This function does not block. Return Value: True or false, depending on whether the lock is acquired or not.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • reader_writer_lock.h
  • +

    Queuing mutex with local-only spinning.

    +

    The documentation for this class was generated from the following file:
      +
    • queuing_mutex.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00144.png b/doc/html/a00144.png index 12ea5c6182..97f8b53bdb 100644 Binary files a/doc/html/a00144.png and b/doc/html/a00144.png differ diff --git a/doc/html/a00145.html b/doc/html/a00145.html index f0c171d8da..2d6133f569 100644 --- a/doc/html/a00145.html +++ b/doc/html/a00145.html @@ -4,7 +4,7 @@ -tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference +tbb::queuing_rw_mutex Class Reference @@ -33,32 +33,75 @@
-
tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference
+
tbb::queuing_rw_mutex Class Reference
+ +

Queuing reader-writer mutex with local-only spinning. + More...

+ +

#include <queuing_rw_mutex.h>

+
+Inheritance diagram for tbb::queuing_rw_mutex:
+
+
+ + + +
- - - + + + + +

-Public Types

-typedef zero_allocator< U,
-Allocator > 
other
 

+Classes

class  scoped_lock
 The scoped locking pattern. More...
 
+ + + + + + + + + +

+Public Member Functions

queuing_rw_mutex ()
 Construct unacquired mutex.
 
~queuing_rw_mutex ()
 Destructor asserts if the mutex is acquired, i.e. q_tail is non-NULL.
 
+void __TBB_EXPORTED_METHOD internal_construct ()
 
+ + + + + + +

+Static Public Attributes

+static const bool is_rw_mutex = true
 
+static const bool is_recursive_mutex = false
 
+static const bool is_fair_mutex = true
 
-
The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00145.png b/doc/html/a00145.png new file mode 100644 index 0000000000..aeda94ccfe Binary files /dev/null and b/doc/html/a00145.png differ diff --git a/doc/html/a00146.html b/doc/html/a00146.html index 2e021d4b25..83a88ba11c 100644 --- a/doc/html/a00146.html +++ b/doc/html/a00146.html @@ -4,7 +4,7 @@ -tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference +tbb::interface5::reader_writer_lock Class Reference @@ -33,32 +33,196 @@
-
tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference
+
tbb::interface5::reader_writer_lock Class Reference
+ +

Writer-preference reader-writer lock with local-only spinning on readers. + More...

+ +

#include <reader_writer_lock.h>

+
+Inheritance diagram for tbb::interface5::reader_writer_lock:
+
+
+ + + +
+ + + + + + + +

+Classes

class  scoped_lock
 The scoped lock pattern for write locks. More...
 
class  scoped_lock_read
 The scoped lock pattern for read locks. More...
 
- - + + + +

Public Types

-typedef memory_pool_allocator
-< U, P > 
other
 
enum  status_t { waiting_nonblocking, +waiting, +active, +invalid + }
 Status type for nodes associated with lock instances. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

reader_writer_lock ()
 Constructs a new reader_writer_lock.
 
~reader_writer_lock ()
 Destructs a reader_writer_lock object.
 
void __TBB_EXPORTED_METHOD lock ()
 Acquires the reader_writer_lock for write. More...
 
bool __TBB_EXPORTED_METHOD try_lock ()
 Tries to acquire the reader_writer_lock for write. More...
 
void __TBB_EXPORTED_METHOD lock_read ()
 Acquires the reader_writer_lock for read. More...
 
bool __TBB_EXPORTED_METHOD try_lock_read ()
 Tries to acquire the reader_writer_lock for read. More...
 
+void __TBB_EXPORTED_METHOD unlock ()
 Releases the reader_writer_lock.
 
+ + + + +

+Friends

+class scoped_lock
 
+class scoped_lock_read
 
-
The documentation for this struct was generated from the following file:
    -
  • memory_pool.h
  • +

    Detailed Description

    +

    Writer-preference reader-writer lock with local-only spinning on readers.

    +

    Loosely adapted from Mellor-Crummey and Scott pseudocode at http://www.cs.rochester.edu/research/synchronization/pseudocode/rw.html#s_wp

    +

    Member Enumeration Documentation

    + +
    +
    + +

    Status type for nodes associated with lock instances.

    +

    waiting_nonblocking: the wait state for nonblocking lock instances; for writes, these transition straight to active states; for reads, these are unused.

    +

    waiting: the start and spin state for all lock instances; these will transition to active state when appropriate. Non-blocking write locks transition from this state to waiting_nonblocking immediately.

    +

    active: the active state means that the lock instance holds the lock; it will transition to invalid state during node deletion

    +

    invalid: the end state for all nodes; this is set in the destructor so if we encounter this state, we are looking at memory that has already been freed

    +

    The state diagrams below describe the status transitions. Single arrows indicate that the thread that owns the node is responsible for the transition; double arrows indicate that any thread could make the transition.

    +

    State diagram for scoped_lock status:

    +

    waiting -------—> waiting_nonblocking | _____________/ | V V V active --------------—> invalid

    +

    State diagram for scoped_lock_read status:

    +

    waiting | V active --------------—>invalid

    + +
    +
    +

    Member Function Documentation

    + +
    +
    + + + + + + + +
    void __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::lock ()
    +
    + +

    Acquires the reader_writer_lock for write.

    +

    If the lock is currently held in write mode by another context, the writer will block by spinning on a local variable. Exceptions thrown: improper_lock The context tries to acquire a reader_writer_lock that it already has write ownership of.

    + +
    +
    + +
    +
    + + + + + + + +
    void __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::lock_read ()
    +
    + +

    Acquires the reader_writer_lock for read.

    +

    If the lock is currently held by a writer, this reader will block and wait until the writers are done. Exceptions thrown: improper_lock The context tries to acquire a reader_writer_lock that it already has write ownership of.

    + +
    +
    + +
    +
    + + + + + + + +
    bool __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::try_lock ()
    +
    + +

    Tries to acquire the reader_writer_lock for write.

    +

    This function does not block. Return Value: True or false, depending on whether the lock is acquired or not. If the lock is already held by this acquiring context, try_lock() returns false.

    + +
    +
    + +
    +
    + + + + + + + +
    bool __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::try_lock_read ()
    +
    + +

    Tries to acquire the reader_writer_lock for read.

    +

    This function does not block. Return Value: True or false, depending on whether the lock is acquired or not.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • reader_writer_lock.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00146.png b/doc/html/a00146.png new file mode 100644 index 0000000000..12ea5c6182 Binary files /dev/null and b/doc/html/a00146.png differ diff --git a/doc/html/a00147.html b/doc/html/a00147.html index f2490a07c9..e2203a1ef4 100644 --- a/doc/html/a00147.html +++ b/doc/html/a00147.html @@ -4,7 +4,7 @@ -tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference +tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference @@ -33,32 +33,32 @@
-
tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference
+
tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef memory_pool_allocator
-< U, P > 
other
 
+typedef
+cache_aligned_allocator< U > 
other
 

The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00148.html b/doc/html/a00148.html index 5fbf747e35..888cca6fc5 100644 --- a/doc/html/a00148.html +++ b/doc/html/a00148.html @@ -4,7 +4,7 @@ -tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference +tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference @@ -33,32 +33,32 @@
-
tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference
+
tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef
-cache_aligned_allocator< U > 
other
 
+typedef zero_allocator< U,
+Allocator > 
other
 

The documentation for this struct was generated from the following file:
    -
  • cache_aligned_allocator.h
  • +
  • tbb_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00149.html b/doc/html/a00149.html index 22b228dc88..150aafd080 100644 --- a/doc/html/a00149.html +++ b/doc/html/a00149.html @@ -4,7 +4,7 @@ -tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference +tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference @@ -33,32 +33,32 @@
-
tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference
+
tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef
-cache_aligned_allocator< U > 
other
 
+typedef zero_allocator< U,
+Allocator > 
other
 

The documentation for this struct was generated from the following file:
    -
  • cache_aligned_allocator.h
  • +
  • tbb_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00150.html b/doc/html/a00150.html index ebe79c1270..ee765ed37d 100644 --- a/doc/html/a00150.html +++ b/doc/html/a00150.html @@ -4,7 +4,7 @@ -tbb::scalable_allocator< T >::rebind< U > Struct Template Reference +tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference @@ -33,31 +33,32 @@
-
tbb::scalable_allocator< T >::rebind< U > Struct Template Reference
+
tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef scalable_allocator< U > other
 
+typedef
+cache_aligned_allocator< U > 
other
 

The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00151.html b/doc/html/a00151.html index 82f9a8777a..ebe6a2b4c3 100644 --- a/doc/html/a00151.html +++ b/doc/html/a00151.html @@ -4,7 +4,7 @@ -tbb::scalable_allocator< void >::rebind< U > Struct Template Reference +tbb::scalable_allocator< T >::rebind< U > Struct Template Reference @@ -33,7 +33,7 @@
@@ -41,23 +41,23 @@ Public Types | List of all members
-
tbb::scalable_allocator< void >::rebind< U > Struct Template Reference
+
tbb::scalable_allocator< T >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef scalable_allocator< U > other
 
+typedef scalable_allocator< U > other
 

The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00152.html b/doc/html/a00152.html index 1684ed634d..3b4dd43216 100644 --- a/doc/html/a00152.html +++ b/doc/html/a00152.html @@ -4,7 +4,7 @@ -tbb::tbb_allocator< T >::rebind< U > Struct Template Reference +tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference @@ -33,31 +33,32 @@
-
tbb::tbb_allocator< T >::rebind< U > Struct Template Reference
+
tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef tbb_allocator< U > other
 
+typedef memory_pool_allocator
+< U, P > 
other
 

The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00153.html b/doc/html/a00153.html index a58a8b7223..eaab0d2b8b 100644 --- a/doc/html/a00153.html +++ b/doc/html/a00153.html @@ -4,7 +4,7 @@ -tbb::tbb_allocator< void >::rebind< U > Struct Template Reference +tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference @@ -33,31 +33,32 @@
-
tbb::tbb_allocator< void >::rebind< U > Struct Template Reference
+
tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef tbb_allocator< U > other
 
+typedef memory_pool_allocator
+< U, P > 
other
 

The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00154.html b/doc/html/a00154.html index 23d2e7eb5f..fe5dd602aa 100644 --- a/doc/html/a00154.html +++ b/doc/html/a00154.html @@ -4,7 +4,7 @@ -tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference +tbb::scalable_allocator< void >::rebind< U > Struct Template Reference @@ -33,32 +33,31 @@
-
tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference
+
tbb::scalable_allocator< void >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef zero_allocator< U,
-Allocator > 
other
 
+typedef scalable_allocator< U > other
 

The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00155.html b/doc/html/a00155.html index 7620e524c9..3b8be5cce1 100644 --- a/doc/html/a00155.html +++ b/doc/html/a00155.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::receiver< T > Class Template Reference +tbb::tbb_allocator< T >::rebind< U > Struct Template Reference @@ -33,149 +33,31 @@
-
tbb::flow::interface8::receiver< T > Class Template Referenceabstract
+
tbb::tbb_allocator< T >::rebind< U > Struct Template Reference
- -

Pure virtual template class that defines a receiver of messages of type T. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::receiver< T >:
-
-
- - -tbb::flow::interface8::broadcast_node< T > -tbb::flow::interface8::buffer_node< T, A > -tbb::flow::interface8::limiter_node< T > -tbb::flow::interface8::overwrite_node< T > -tbb::flow::interface8::priority_queue_node< T, Compare, A > -tbb::flow::interface8::queue_node< T, A > -tbb::flow::interface8::write_once_node< T > -tbb::flow::interface8::sequencer_node< T, A > - -
- - - - - - - - - - -

Public Types

-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual built_predecessors_typebuilt_predecessors ()=0
 
-virtual void internal_add_built_predecessor (predecessor_type &)=0
 
-virtual void internal_delete_built_predecessor (predecessor_type &)=0
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
-virtual size_t predecessor_count ()=0
 
- - - - - - - -

-Protected Member Functions

-virtual task * try_put_task (const T &t)=0
 
-virtual void reset_receiver (reset_flags f=rf_reset_protocol)=0
 
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - - - - - - - - - - - - + +

-Friends

-template<typename R , typename B >
class run_and_put_task
 put item to successor; return task to run the successor if possible.
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
-template<typename U >
class limiter_node
 put receiver back in initial state
 
-template<typename TT , typename M >
class internal::successor_cache
 
-template<typename , typename >
class proxy_dependency_receiver
 
+typedef tbb_allocator< U > other
 
-

Detailed Description

-

template<typename T>
-class tbb::flow::interface8::receiver< T >

- -

Pure virtual template class that defines a receiver of messages of type T.

-

The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • tbb_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00155.png b/doc/html/a00155.png deleted file mode 100644 index f765e3ebb5..0000000000 Binary files a/doc/html/a00155.png and /dev/null differ diff --git a/doc/html/a00156.html b/doc/html/a00156.html index d277bfcab1..ea764a982d 100644 --- a/doc/html/a00156.html +++ b/doc/html/a00156.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::receiver< dependency_msg< T, Factory > > Class Template Reference +tbb::tbb_allocator< void >::rebind< U > Struct Template Reference @@ -33,82 +33,31 @@
-
tbb::flow::interface8::receiver< dependency_msg< T, Factory > > Class Template Referenceabstract
+
tbb::tbb_allocator< void >::rebind< U > Struct Template Reference
-
-Inheritance diagram for tbb::flow::interface8::receiver< dependency_msg< T, Factory > >:
-
-
- - -tbb::flow::interface8::proxy_dependency_receiver< T, Factory > - -
- - - - - -

Public Types

-typedef sender< dependency_msg
-< T, Factory > > 
dependency_predecessor_type
 The predecessor type for this node.
 
-typedef
-proxy_dependency_receiver< T,
-Factory > 
proxy
 
- - - - - - - - - - - - - - - -

-Public Member Functions

-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual task * try_put_task (const dependency_msg< T, Factory > &)=0
 Put an item to the receiver.
 
-virtual bool register_predecessor (dependency_predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (dependency_predecessor_type &)
 Remove a predecessor from the node.
 
-ordinary_receiver & ordinary_receiver ()
 
- - - - - - + +

-Protected Member Functions

-virtual void reset_receiver (reset_flags f=rf_reset_protocol)=0
 put receiver back in initial state
 
-virtual bool is_continue_receiver ()
 
+typedef tbb_allocator< U > other
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • tbb_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00157.html b/doc/html/a00157.html index 2947993ae0..e8a69421a8 100644 --- a/doc/html/a00157.html +++ b/doc/html/a00157.html @@ -4,7 +4,7 @@ -tbb::recursive_mutex Class Reference +tbb::flow::interface8::receiver< T > Class Template Reference @@ -33,127 +33,149 @@
-
tbb::recursive_mutex Class Reference
+
tbb::flow::interface8::receiver< T > Class Template Referenceabstract
-

#include <recursive_mutex.h>

+

Pure virtual template class that defines a receiver of messages of type T. + More...

+ +

#include <flow_graph.h>

-Inheritance diagram for tbb::recursive_mutex:
+Inheritance diagram for tbb::flow::interface8::receiver< T >:
- - + + +tbb::flow::interface8::broadcast_node< T > +tbb::flow::interface8::buffer_node< T, A > +tbb::flow::interface8::limiter_node< T > +tbb::flow::interface8::overwrite_node< T > +tbb::flow::interface8::priority_queue_node< T, Compare, A > +tbb::flow::interface8::queue_node< T, A > +tbb::flow::interface8::write_once_node< T > +tbb::flow::interface8::sequencer_node< T, A >
- - - - -

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 
- - - - - + + + + + + + + + +

Public Types

-typedef LPCRITICAL_SECTION native_handle_type
 Return native_handle.
 
-typedef pthread_mutex_t * native_handle_type
 
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

recursive_mutex ()
 Construct unacquired recursive_mutex.
 
-void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
-void unlock ()
 Release lock.
 
-native_handle_type native_handle ()
 
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual built_predecessors_typebuilt_predecessors ()=0
 
+virtual void internal_add_built_predecessor (predecessor_type &)=0
 
+virtual void internal_delete_built_predecessor (predecessor_type &)=0
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
+virtual size_t predecessor_count ()=0
 
- - - - - - - + + + + + + +

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = true
 
-static const bool is_fair_mutex = false
 

+Protected Member Functions

+virtual task * try_put_task (const T &t)=0
 
+virtual void reset_receiver (reset_flags f=rf_reset_protocol)=0
 
+virtual bool is_continue_receiver ()
 
- - + + + + + + + + + + + + + + + + + + + +

Friends

-class scoped_lock
 
+template<typename R , typename B >
class run_and_put_task
 put item to successor; return task to run the successor if possible.
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
+template<typename U >
class limiter_node
 put receiver back in initial state
 
+template<typename TT , typename M >
class internal::successor_cache
 
+template<typename , typename >
class proxy_dependency_receiver
 

Detailed Description

-

Mutex that allows recursive mutex acquisition.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::recursive_mutex::try_lock ()
-
-inline
-
- -

Try acquiring lock (non-blocking)

-

Return true if lock acquired; false otherwise.

+

template<typename T>
+class tbb::flow::interface8::receiver< T >

-

References tbb::aligned_space< T, N >::begin().

- -

Referenced by tbb::recursive_mutex::scoped_lock::try_acquire().

- -
-
-
The documentation for this class was generated from the following file:
    -
  • recursive_mutex.h
  • +

    Pure virtual template class that defines a receiver of messages of type T.

    +

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00157.png b/doc/html/a00157.png index 3157a913de..f765e3ebb5 100644 Binary files a/doc/html/a00157.png and b/doc/html/a00157.png differ diff --git a/doc/html/a00158.html b/doc/html/a00158.html index a8d0a75bce..b26185604e 100644 --- a/doc/html/a00158.html +++ b/doc/html/a00158.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::internal::round_robin_cache< T, M > Class Template Reference +tbb::flow::interface8::receiver< dependency_msg< T, Factory > > Class Template Reference @@ -33,21 +33,82 @@
+
-
tbb::flow::interface8::internal::round_robin_cache< T, M > Class Template Reference
+
tbb::flow::interface8::receiver< dependency_msg< T, Factory > > Class Template Referenceabstract
+
+Inheritance diagram for tbb::flow::interface8::receiver< dependency_msg< T, Factory > >:
+
+
+ + +tbb::flow::interface8::proxy_dependency_receiver< T, Factory > + +
+ + + + + + + +

+Public Types

+typedef sender< dependency_msg
+< T, Factory > > 
predecessor_type
 The predecessor type for this node.
 
+typedef
+proxy_dependency_receiver< T,
+Factory > 
proxy
 
+ + + + + + + + + + + + + + + +

+Public Member Functions

+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual task * try_put_task (const dependency_msg< T, Factory > &)=0
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+ordinary_receiver & ordinary_receiver ()
 
+ + + + + + +

+Protected Member Functions

+virtual void reset_receiver (reset_flags f=rf_reset_protocol)=0
 put receiver back in initial state
 
+virtual bool is_continue_receiver ()
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00156.png b/doc/html/a00158.png similarity index 100% rename from doc/html/a00156.png rename to doc/html/a00158.png diff --git a/doc/html/a00159.html b/doc/html/a00159.html index 967213b8bb..b61656e20f 100644 --- a/doc/html/a00159.html +++ b/doc/html/a00159.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::run_and_put_task< R, B > Class Template Reference +tbb::recursive_mutex Class Reference @@ -33,21 +33,127 @@
+
-
tbb::flow::interface8::run_and_put_task< R, B > Class Template Reference
+
tbb::recursive_mutex Class Reference
+ +

#include <recursive_mutex.h>

+
+Inheritance diagram for tbb::recursive_mutex:
+
+
+ + + +
+ + + + + +

+Classes

class  scoped_lock
 The scoped locking pattern. More...
 
+ + + + + + +

+Public Types

+typedef LPCRITICAL_SECTION native_handle_type
 Return native_handle.
 
+typedef pthread_mutex_t * native_handle_type
 
+ + + + + + + + + + + + + + + +

+Public Member Functions

recursive_mutex ()
 Construct unacquired recursive_mutex.
 
+void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
+void unlock ()
 Release lock.
 
+native_handle_type native_handle ()
 
+ + + + + + + +

+Static Public Attributes

+static const bool is_rw_mutex = false
 
+static const bool is_recursive_mutex = true
 
+static const bool is_fair_mutex = false
 
+ + + +

+Friends

+class scoped_lock
 
+

Detailed Description

+

Mutex that allows recursive mutex acquisition.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
bool tbb::recursive_mutex::try_lock ()
+
+inline
+
+ +

Try acquiring lock (non-blocking)

+

Return true if lock acquired; false otherwise.

+ +

References tbb::aligned_space< T, N >::begin().

+ +

Referenced by tbb::recursive_mutex::scoped_lock::try_acquire().

+ +
+

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00159.png b/doc/html/a00159.png new file mode 100644 index 0000000000..3157a913de Binary files /dev/null and b/doc/html/a00159.png differ diff --git a/doc/html/a00160.html b/doc/html/a00160.html index e99a28a908..4273db8cef 100644 --- a/doc/html/a00160.html +++ b/doc/html/a00160.html @@ -4,7 +4,7 @@ -tbb::interface6::runtime_loader Class Reference +tbb::flow::interface8::internal::round_robin_cache< T, M > Class Template Reference @@ -33,286 +33,21 @@
-
-
tbb::interface6::runtime_loader Class Reference
+
tbb::flow::interface8::internal::round_robin_cache< T, M > Class Template Reference
- -

Load TBB at runtime. - More...

- -

#include <runtime_loader.h>

-
-Inheritance diagram for tbb::interface6::runtime_loader:
-
-
- - - -
- - - - - - - - -

-Public Types

enum  error_mode { em_status, -em_throw, -em_abort - }
 Error mode constants. More...
 
enum  error_code {
-  ec_ok, -ec_bad_call, -ec_bad_arg, -ec_bad_lib, -
-  ec_bad_ver, -ec_no_lib -
- }
 Error codes. More...
 
- - - - - - - - - - - - - - - - -

-Public Member Functions

runtime_loader (error_mode mode=em_abort)
 Initialize object but do not load TBB.
 
 runtime_loader (char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX, error_mode mode=em_abort)
 Initialize object and load TBB. More...
 
~runtime_loader ()
 Destroy object.
 
error_code load (char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX)
 Load TBB. More...
 
error_code status ()
 Report status. More...
 
-

Detailed Description

-

Load TBB at runtime.

-

Usage:

-

In source code:

-
#include "tbb/runtime_loader.h"
-
-
char const * path[] = { "<install dir>/lib/ia32", NULL };
-
tbb::runtime_loader loader( path );
-
-
// Now use TBB.
-

Link with tbbproxy.lib (or libtbbproxy.a) instead of tbb.lib (libtbb.dylib, libtbb.so).

-

TBB library will be loaded at runtime from <install dir>="">/lib/ia32 directory.

-

Attention:

-

All runtime_loader objects (in the same module, i.e. exe or dll) share some global state. The most noticeable piece of global state is loaded TBB library. There are some implications:

-
-   Only one TBB library can be loaded per module.
-
--   If one object has already loaded TBB library, another object will not load TBB.
-    If the loaded TBB library is suitable for the second object, both will use TBB
-    cooperatively, otherwise the second object will report an error.
-
--   \c runtime_loader objects will not work (correctly) in parallel due to absence of
-    synchronization.

Member Enumeration Documentation

- -
-
- -

Error codes.

- - - - - - - -
Enumerator
ec_ok  -

No errors.

-
ec_bad_call  -

Invalid function call (e. g. load() called when TBB is already loaded).

-
ec_bad_arg  -

Invalid argument passed.

-
ec_bad_lib  -

Invalid library found (e. g. TBB_runtime_version symbol not found).

-
ec_bad_ver  -

TBB found but version is not suitable.

-
ec_no_lib  -

No suitable TBB library found.

-
- -
-
- -
-
- -

Error mode constants.

- - - - -
Enumerator
em_status  -

Save status of operation and continue.

-
em_throw  -

Throw an exception of tbb::runtime_loader::error_code type.

-
em_abort  -

Print message to stderr and call abort().

-
- -
-
-

Constructor & Destructor Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
tbb::interface6::runtime_loader::runtime_loader (char const * path[],
int min_ver = TBB_INTERFACE_VERSION,
int max_ver = INT_MAX,
error_mode mode = em_abort 
)
-
- -

Initialize object and load TBB.

-

See load() for details.

-

If error mode is em_status, call status() to check whether TBB was loaded or not.

-
Parameters
- - - - - -
pathList of directories to search TBB in.
min_verMinimal suitable version of TBB.
max_verMaximal suitable version of TBB.
modeError mode for this object.
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
error_code tbb::interface6::runtime_loader::load (char const * path[],
int min_ver = TBB_INTERFACE_VERSION,
int max_ver = INT_MAX 
)
-
- -

Load TBB.

-

The method searches the directories specified in path[] array for the TBB library. When the library is found, it is loaded and its version is checked. If the version is not suitable, the library is unloaded, and the search continues.

-

Note:

-

For security reasons, avoid using relative directory names. For example, never load TBB from current ("."), parent ("..") or any other relative directory (like "lib" ). Use only absolute directory names (e. g. "/usr/local/lib").

-

For the same security reasons, avoid using system default directories ("") on Windows. (See http://www.microsoft.com/technet/security/advisory/2269637.mspx for details.)

-

Neglecting these rules may cause your program to execute 3-rd party malicious code.

-

Errors:

-
    -
  • ec_bad_call - TBB already loaded by this object.
  • -
  • ec_bad_arg - min_ver and/or max_ver negative or zero, or min_ver > max_ver.
  • -
  • ec_bad_ver - TBB of unsuitable version already loaded by another object.
  • -
  • ec_no_lib - No suitable library found.
  • -
-
Parameters
- - - - -
pathList of directories to search TBB in.
min_verMinimal suitable version of TBB.
max_verMaximal suitable version of TBB.
-
-
- -
-
- -
-
- - - - - - - -
error_code tbb::interface6::runtime_loader::status ()
-
- -

Report status.

-

If error mode is em_status, the function returns status of the last operation.

- -
-

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00161.html b/doc/html/a00161.html index f53776d4d7..99264afd98 100644 --- a/doc/html/a00161.html +++ b/doc/html/a00161.html @@ -4,7 +4,7 @@ -tbb::scalable_allocator< T > Class Template Reference +tbb::flow::interface8::run_and_put_task< R, B > Class Template Reference @@ -33,110 +33,21 @@
-
-
tbb::scalable_allocator< T > Class Template Reference
+
tbb::flow::interface8::run_and_put_task< R, B > Class Template Reference
- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. - More...

- -

#include <scalable_allocator.h>

- - - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - -

-Public Types

-typedef
-internal::allocator_type< T >
-::value_type 
value_type
 
-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
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

scalable_allocator (const scalable_allocator &) throw ()
 
-template<typename U >
 scalable_allocator (const scalable_allocator< U > &) throw ()
 
-pointer address (reference x) const
 
-const_pointer address (const_reference x) const
 
-pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
-void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
-size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
-template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 
-void construct (pointer p, value_type &&value)
 
-void construct (pointer p, const value_type &value)
 
-void destroy (pointer p)
 
-

Detailed Description

-

template<typename T>
-class tbb::scalable_allocator< T >

- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

-

The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

-

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00162.html b/doc/html/a00162.html index a2e5315f28..0cf654890f 100644 --- a/doc/html/a00162.html +++ b/doc/html/a00162.html @@ -4,7 +4,7 @@ -tbb::scalable_allocator< void > Class Template Reference +tbb::interface6::runtime_loader Class Reference @@ -33,53 +33,286 @@
-
tbb::scalable_allocator< void > Class Template Reference
+
tbb::interface6::runtime_loader Class Reference
-

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. +

Load TBB at runtime. More...

-

#include <scalable_allocator.h>

+

#include <runtime_loader.h>

+
+Inheritance diagram for tbb::interface6::runtime_loader:
+
+
+ + + +
- - - -

-Classes

struct  rebind
 
- - - - - - + + + + + + +

Public Types

-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 
enum  error_mode { em_status, +em_throw, +em_abort + }
 Error mode constants. More...
 
enum  error_code {
+  ec_ok, +ec_bad_call, +ec_bad_arg, +ec_bad_lib, +
+  ec_bad_ver, +ec_no_lib +
+ }
 Error codes. More...
 
+ + + + + + + + + + + + + + + +

+Public Member Functions

runtime_loader (error_mode mode=em_abort)
 Initialize object but do not load TBB.
 
 runtime_loader (char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX, error_mode mode=em_abort)
 Initialize object and load TBB. More...
 
~runtime_loader ()
 Destroy object.
 
error_code load (char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX)
 Load TBB. More...
 
error_code status ()
 Report status. More...
 

Detailed Description

-

template<>
-class tbb::scalable_allocator< void >

+

Load TBB at runtime.

+

Usage:

+

In source code:

+
#include "tbb/runtime_loader.h"
+
+
char const * path[] = { "<install dir>/lib/ia32", NULL };
+
tbb::runtime_loader loader( path );
+
+
// Now use TBB.
+

Link with tbbproxy.lib (or libtbbproxy.a) instead of tbb.lib (libtbb.dylib, libtbb.so).

+

TBB library will be loaded at runtime from <install dir>="">/lib/ia32 directory.

+

Attention:

+

All runtime_loader objects (in the same module, i.e. exe or dll) share some global state. The most noticeable piece of global state is loaded TBB library. There are some implications:

+
-   Only one TBB library can be loaded per module.
+
+-   If one object has already loaded TBB library, another object will not load TBB.
+    If the loaded TBB library is suitable for the second object, both will use TBB
+    cooperatively, otherwise the second object will report an error.
+
+-   \c runtime_loader objects will not work (correctly) in parallel due to absence of
+    synchronization.

Member Enumeration Documentation

+ +
+
+ +

Error codes.

+ + + + + + + +
Enumerator
ec_ok  +

No errors.

+
ec_bad_call  +

Invalid function call (e. g. load() called when TBB is already loaded).

+
ec_bad_arg  +

Invalid argument passed.

+
ec_bad_lib  +

Invalid library found (e. g. TBB_runtime_version symbol not found).

+
ec_bad_ver  +

TBB found but version is not suitable.

+
ec_no_lib  +

No suitable TBB library found.

+
+ +
+
+ +
+
+ +

Error mode constants.

+ + + + +
Enumerator
em_status  +

Save status of operation and continue.

+
em_throw  +

Throw an exception of tbb::runtime_loader::error_code type.

+
em_abort  +

Print message to stderr and call abort().

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
tbb::interface6::runtime_loader::runtime_loader (char const * path[],
int min_ver = TBB_INTERFACE_VERSION,
int max_ver = INT_MAX,
error_mode mode = em_abort 
)
+
+ +

Initialize object and load TBB.

+

See load() for details.

+

If error mode is em_status, call status() to check whether TBB was loaded or not.

+
Parameters
+ + + + + +
pathList of directories to search TBB in.
min_verMinimal suitable version of TBB.
max_verMaximal suitable version of TBB.
modeError mode for this object.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
error_code tbb::interface6::runtime_loader::load (char const * path[],
int min_ver = TBB_INTERFACE_VERSION,
int max_ver = INT_MAX 
)
+
+ +

Load TBB.

+

The method searches the directories specified in path[] array for the TBB library. When the library is found, it is loaded and its version is checked. If the version is not suitable, the library is unloaded, and the search continues.

+

Note:

+

For security reasons, avoid using relative directory names. For example, never load TBB from current ("."), parent ("..") or any other relative directory (like "lib" ). Use only absolute directory names (e. g. "/usr/local/lib").

+

For the same security reasons, avoid using system default directories ("") on Windows. (See http://www.microsoft.com/technet/security/advisory/2269637.mspx for details.)

+

Neglecting these rules may cause your program to execute 3-rd party malicious code.

+

Errors:

+
    +
  • ec_bad_call - TBB already loaded by this object.
  • +
  • ec_bad_arg - min_ver and/or max_ver negative or zero, or min_ver > max_ver.
  • +
  • ec_bad_ver - TBB of unsuitable version already loaded by another object.
  • +
  • ec_no_lib - No suitable library found.
  • +
+
Parameters
+ + + + +
pathList of directories to search TBB in.
min_verMinimal suitable version of TBB.
max_verMaximal suitable version of TBB.
+
+
-

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

-

The documentation for this class was generated from the following file:
+
+ +
+
+ + + + + + + +
error_code tbb::interface6::runtime_loader::status ()
+
+ +

Report status.

+

If error mode is em_status, the function returns status of the last operation.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • runtime_loader.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00160.png b/doc/html/a00162.png similarity index 100% rename from doc/html/a00160.png rename to doc/html/a00162.png diff --git a/doc/html/a00163.html b/doc/html/a00163.html index a85019c315..3fddc94d5a 100644 --- a/doc/html/a00163.html +++ b/doc/html/a00163.html @@ -4,7 +4,7 @@ -tbb::spin_mutex::scoped_lock Class Reference +tbb::scalable_allocator< T > Class Template Reference @@ -33,101 +33,110 @@
-
tbb::spin_mutex::scoped_lock Class Reference
+
tbb::scalable_allocator< T > Class Template Reference
-

Represents acquisition of a mutex. +

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...

-

#include <spin_mutex.h>

-
-Inheritance diagram for tbb::spin_mutex::scoped_lock:
-
-
- - - -
+

#include <scalable_allocator.h>

+ + + +

+Classes

struct  rebind
 
+ + + + + + + + + + + + + + + +

+Public Types

+typedef
+internal::allocator_type< T >
+::value_type 
value_type
 
+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
 
- - - - - - - - - - - - - - - - - - -

Public Member Functions

scoped_lock ()
 Construct without acquiring a mutex.
 
scoped_lock (spin_mutex &m)
 Construct and acquire lock on a mutex.
 
-void acquire (spin_mutex &m)
 Acquire lock.
 
bool try_acquire (spin_mutex &m)
 Try acquiring lock (non-blocking) More...
 
-void release ()
 Release lock.
 
~scoped_lock ()
 Destroy lock. If holding a lock, releases the lock first.
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Friends

-class spin_mutex
 
scalable_allocator (const scalable_allocator &) throw ()
 
+template<typename U >
 scalable_allocator (const scalable_allocator< U > &) throw ()
 
+pointer address (reference x) const
 
+const_pointer address (const_reference x) const
 
+pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
+void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
+size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
+template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 
+void construct (pointer p, value_type &&value)
 
+void construct (pointer p, const value_type &value)
 
+void destroy (pointer p)
 

Detailed Description

-

Represents acquisition of a mutex.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - -
bool tbb::spin_mutex::scoped_lock::try_acquire (spin_mutexm)
-
-inline
-
+

template<typename T>
+class tbb::scalable_allocator< T >

-

Try acquiring lock (non-blocking)

-

Return true if lock acquired; false otherwise.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • spin_mutex.h
  • +

    Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

    +

    The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

    +

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00163.png b/doc/html/a00163.png deleted file mode 100644 index 25da9c6ba0..0000000000 Binary files a/doc/html/a00163.png and /dev/null differ diff --git a/doc/html/a00164.html b/doc/html/a00164.html index 1959cbbbaa..4084b6d364 100644 --- a/doc/html/a00164.html +++ b/doc/html/a00164.html @@ -4,7 +4,7 @@ -tbb::queuing_mutex::scoped_lock Class Reference +tbb::scalable_allocator< void > Class Template Reference @@ -33,94 +33,53 @@
-
tbb::queuing_mutex::scoped_lock Class Reference
+
tbb::scalable_allocator< void > Class Template Reference
-

The scoped locking pattern. +

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...

-

#include <queuing_mutex.h>

-
-Inheritance diagram for tbb::queuing_mutex::scoped_lock:
-
-
- - - -
+

#include <scalable_allocator.h>

- - - - - - - - - - - - - - - - - - - + + + +

-Public Member Functions

 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (queuing_mutex &m)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void __TBB_EXPORTED_METHOD acquire (queuing_mutex &m)
 Acquire lock on given mutex.
 
-bool __TBB_EXPORTED_METHOD try_acquire (queuing_mutex &m)
 Acquire lock on given mutex if free (i.e. non-blocking)
 
-void __TBB_EXPORTED_METHOD release ()
 Release lock.
 

+Classes

struct  rebind
 
+ + + + + + +

+Public Types

+typedef void * pointer
 
+typedef const void * const_pointer
 
+typedef void value_type
 

Detailed Description

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
tbb::queuing_mutex::scoped_lock::scoped_lock ()
-
-inline
-
- -

Construct lock that has not acquired a mutex.

-

Equivalent to zero-initialization of *this.

+

template<>
+class tbb::scalable_allocator< void >

-
-
-
The documentation for this class was generated from the following file:
    -
  • queuing_mutex.h
  • +

    Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

    +

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00164.png b/doc/html/a00164.png deleted file mode 100644 index 611457f0e8..0000000000 Binary files a/doc/html/a00164.png and /dev/null differ diff --git a/doc/html/a00165.html b/doc/html/a00165.html index c4361b967e..a76740e09a 100644 --- a/doc/html/a00165.html +++ b/doc/html/a00165.html @@ -4,7 +4,7 @@ -tbb::spin_rw_mutex_v3::scoped_lock Class Reference +tbb::queuing_mutex::scoped_lock Class Reference @@ -33,87 +33,62 @@
-
tbb::spin_rw_mutex_v3::scoped_lock Class Reference
+
tbb::queuing_mutex::scoped_lock Class Reference

The scoped locking pattern. More...

-

#include <spin_rw_mutex.h>

+

#include <queuing_mutex.h>

-Inheritance diagram for tbb::spin_rw_mutex_v3::scoped_lock:
+Inheritance diagram for tbb::queuing_mutex::scoped_lock:
- - + +
- - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (spin_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void acquire (spin_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
bool upgrade_to_writer ()
 Upgrade reader to become a writer. More...
 
-void release ()
 Release lock.
 
-bool downgrade_to_reader ()
 Downgrade writer to become a reader.
 
-bool try_acquire (spin_rw_mutex &m, bool write=true)
 Try acquire lock on given mutex.
 
- - - - - - - -

-Protected Attributes

-spin_rw_mutexmutex
 The pointer to the current mutex that is held, or NULL if no mutex is held.
 
bool is_writer
 If mutex!=NULL, then is_writer is true if holding a writer lock, false if holding a reader lock. More...
 
- - - + + + + + + + + + + + + + + + + + +

-Friends

-class tbb::interface8::internal::x86_rtm_rw_mutex
 
 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (queuing_mutex &m)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
+void __TBB_EXPORTED_METHOD acquire (queuing_mutex &m)
 Acquire lock on given mutex.
 
+bool __TBB_EXPORTED_METHOD try_acquire (queuing_mutex &m)
 Acquire lock on given mutex if free (i.e. non-blocking)
 
+void __TBB_EXPORTED_METHOD release ()
 Release lock.
 

Detailed Description

The scoped locking pattern.

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

Constructor & Destructor Documentation

- +
@@ -121,7 +96,7 @@
- + @@ -137,70 +112,15 @@

Construct lock that has not acquired a mutex.

Equivalent to zero-initialization of *this.

- - -

Member Function Documentation

- -
-
-
tbb::spin_rw_mutex_v3::scoped_lock::scoped_lock tbb::queuing_mutex::scoped_lock::scoped_lock ( )
- - - - -
- - - - - - - -
bool tbb::spin_rw_mutex_v3::scoped_lock::upgrade_to_writer ()
-
-inline
-
- -

Upgrade reader to become a writer.

-

Returns whether the upgrade happened without releasing and re-acquiring the lock

- -

References is_writer.

- -
- -

Member Data Documentation

- -
-
- - - - - -
- - - - -
bool tbb::spin_rw_mutex_v3::scoped_lock::is_writer
-
-protected
-
- -

If mutex!=NULL, then is_writer is true if holding a writer lock, false if holding a reader lock.

-

Not defined if not holding a lock.

- -

Referenced by acquire(), downgrade_to_reader(), release(), try_acquire(), and upgrade_to_writer().

-

The documentation for this class was generated from the following file:
    -
  • spin_rw_mutex.h
  • +
  • queuing_mutex.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00165.png b/doc/html/a00165.png index 13249c6a5c..611457f0e8 100644 Binary files a/doc/html/a00165.png and b/doc/html/a00165.png differ diff --git a/doc/html/a00166.html b/doc/html/a00166.html index 2734d88658..c52f7da468 100644 --- a/doc/html/a00166.html +++ b/doc/html/a00166.html @@ -4,7 +4,7 @@ -tbb::recursive_mutex::scoped_lock Class Reference +tbb::spin_rw_mutex_v3::scoped_lock Class Reference @@ -33,75 +33,174 @@
-
tbb::recursive_mutex::scoped_lock Class Reference
+
tbb::spin_rw_mutex_v3::scoped_lock Class Reference

The scoped locking pattern. More...

-

#include <recursive_mutex.h>

+

#include <spin_rw_mutex.h>

-Inheritance diagram for tbb::recursive_mutex::scoped_lock:
+Inheritance diagram for tbb::spin_rw_mutex_v3::scoped_lock:
- - + +
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

scoped_lock ()
 Construct lock that has not acquired a recursive_mutex.
 
scoped_lock (recursive_mutex &mutex)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void acquire (recursive_mutex &mutex)
 Acquire lock on given mutex.
 
-bool try_acquire (recursive_mutex &mutex)
 Try acquire lock on given recursive_mutex.
 
-void release ()
 Release lock.
 
 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (spin_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
+void acquire (spin_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
bool upgrade_to_writer ()
 Upgrade reader to become a writer. More...
 
+void release ()
 Release lock.
 
+bool downgrade_to_reader ()
 Downgrade writer to become a reader.
 
+bool try_acquire (spin_rw_mutex &m, bool write=true)
 Try acquire lock on given mutex.
 
+ + + + + + +

+Protected Attributes

+spin_rw_mutexmutex
 The pointer to the current mutex that is held, or NULL if no mutex is held.
 
bool is_writer
 If mutex!=NULL, then is_writer is true if holding a writer lock, false if holding a reader lock. More...
 
- - + +

Friends

-class recursive_mutex
 
+class tbb::interface8::internal::x86_rtm_rw_mutex
 

Detailed Description

The scoped locking pattern.

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

The documentation for this class was generated from the following file:
    -
  • recursive_mutex.h
  • +

    Constructor & Destructor Documentation

    + +
    +
    + + + + + +
    + + + + + + + +
    tbb::spin_rw_mutex_v3::scoped_lock::scoped_lock ()
    +
    +inline
    +
    + +

    Construct lock that has not acquired a mutex.

    +

    Equivalent to zero-initialization of *this.

    + +
    +
    +

    Member Function Documentation

    + +
    +
    + + + + + +
    + + + + + + + +
    bool tbb::spin_rw_mutex_v3::scoped_lock::upgrade_to_writer ()
    +
    +inline
    +
    + +

    Upgrade reader to become a writer.

    +

    Returns whether the upgrade happened without releasing and re-acquiring the lock

    + +

    References is_writer.

    + +
    +
    +

    Member Data Documentation

    + +
    +
    + + + + + +
    + + + + +
    bool tbb::spin_rw_mutex_v3::scoped_lock::is_writer
    +
    +protected
    +
    + +

    If mutex!=NULL, then is_writer is true if holding a writer lock, false if holding a reader lock.

    +

    Not defined if not holding a lock.

    + +

    Referenced by acquire(), downgrade_to_reader(), release(), try_acquire(), and upgrade_to_writer().

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • spin_rw_mutex.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00166.png b/doc/html/a00166.png index 9d4ec98b91..13249c6a5c 100644 Binary files a/doc/html/a00166.png and b/doc/html/a00166.png differ diff --git a/doc/html/a00167.html b/doc/html/a00167.html index a3e9ae23a3..8704f461ff 100644 --- a/doc/html/a00167.html +++ b/doc/html/a00167.html @@ -4,7 +4,7 @@ -tbb::queuing_rw_mutex::scoped_lock Class Reference +tbb::interface5::reader_writer_lock::scoped_lock Class Reference @@ -33,120 +33,65 @@
-
tbb::queuing_rw_mutex::scoped_lock Class Reference
+
tbb::interface5::reader_writer_lock::scoped_lock Class Reference
-

The scoped locking pattern. +

The scoped lock pattern for write locks. More...

-

#include <queuing_rw_mutex.h>

+

#include <reader_writer_lock.h>

-Inheritance diagram for tbb::queuing_rw_mutex::scoped_lock:
+Inheritance diagram for tbb::interface5::reader_writer_lock::scoped_lock:
- - + +
- - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + +

Public Member Functions

 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void acquire (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
-bool try_acquire (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex if free (i.e. non-blocking)
 
-void release ()
 Release lock.
 
bool upgrade_to_writer ()
 Upgrade reader to become a writer. More...
 
-bool downgrade_to_reader ()
 Downgrade writer to become a reader.
 
scoped_lock (reader_writer_lock &lock)
 Construct with blocking attempt to acquire write lock on the passed-in lock.
 
~scoped_lock ()
 Destructor, releases the write lock.
 
+void * operator new (size_t s)
 
+void operator delete (void *p)
 
+ + +

+Friends

+class reader_writer_lock
 

Detailed Description

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
tbb::queuing_rw_mutex::scoped_lock::scoped_lock ()
-
-inline
-
- -

Construct lock that has not acquired a mutex.

-

Equivalent to zero-initialization of *this.

- -
-
-

Member Function Documentation

- -
-
- - - - - - - -
bool tbb::queuing_rw_mutex::scoped_lock::upgrade_to_writer ()
-
- -

Upgrade reader to become a writer.

-

Returns whether the upgrade happened without releasing and re-acquiring the lock

- -
-
-
The documentation for this class was generated from the following file:
    -
  • queuing_rw_mutex.h
  • +

    The scoped lock pattern for write locks.

    +

    Scoped locks help avoid the common problem of forgetting to release the lock. This type also serves as the node for queuing locks.

    +

    The documentation for this class was generated from the following file:
      +
    • reader_writer_lock.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00167.png b/doc/html/a00167.png index 227e99a9e7..a999a7d0cd 100644 Binary files a/doc/html/a00167.png and b/doc/html/a00167.png differ diff --git a/doc/html/a00168.html b/doc/html/a00168.html index 201f5e6daf..7a4e7e0279 100644 --- a/doc/html/a00168.html +++ b/doc/html/a00168.html @@ -4,7 +4,7 @@ -tbb::null_mutex::scoped_lock Class Reference +tbb::internal::critical_section_v4::scoped_lock Class Reference @@ -33,55 +33,39 @@
-
tbb::null_mutex::scoped_lock Class Reference
+
tbb::internal::critical_section_v4::scoped_lock Class Reference
- -

Represents acquisition of a mutex. - More...

- -

#include <null_mutex.h>

-Inheritance diagram for tbb::null_mutex::scoped_lock:
+Inheritance diagram for tbb::internal::critical_section_v4::scoped_lock:
- - + +
- - - - - - - - + +

Public Member Functions

scoped_lock (null_mutex &)
 
-void acquire (null_mutex &)
 
-bool try_acquire (null_mutex &)
 
-void release ()
 
scoped_lock (critical_section_v4 &lock_me)
 
-

Detailed Description

-

Represents acquisition of a mutex.

-

The documentation for this class was generated from the following file:
    -
  • null_mutex.h
  • +
    The documentation for this class was generated from the following file:
      +
    • critical_section.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00168.png b/doc/html/a00168.png index d8565aa377..15626cfa0f 100644 Binary files a/doc/html/a00168.png and b/doc/html/a00168.png differ diff --git a/doc/html/a00169.html b/doc/html/a00169.html index b841c5284b..4db9404a88 100644 --- a/doc/html/a00169.html +++ b/doc/html/a00169.html @@ -4,7 +4,7 @@ -tbb::interface5::reader_writer_lock::scoped_lock Class Reference +tbb::queuing_rw_mutex::scoped_lock Class Reference @@ -33,65 +33,120 @@
-
tbb::interface5::reader_writer_lock::scoped_lock Class Reference
+
tbb::queuing_rw_mutex::scoped_lock Class Reference
-

The scoped lock pattern for write locks. +

The scoped locking pattern. More...

-

#include <reader_writer_lock.h>

+

#include <queuing_rw_mutex.h>

-Inheritance diagram for tbb::interface5::reader_writer_lock::scoped_lock:
+Inheritance diagram for tbb::queuing_rw_mutex::scoped_lock:
- - + +
- - - - - - - - - - -

Public Member Functions

scoped_lock (reader_writer_lock &lock)
 Construct with blocking attempt to acquire write lock on the passed-in lock.
 
~scoped_lock ()
 Destructor, releases the write lock.
 
-void * operator new (size_t s)
 
-void operator delete (void *p)
 
- - - + + + + + + + + + + + + + + + + + + + + + + + +

-Friends

-class reader_writer_lock
 
 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
+void acquire (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
+bool try_acquire (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex if free (i.e. non-blocking)
 
+void release ()
 Release lock.
 
bool upgrade_to_writer ()
 Upgrade reader to become a writer. More...
 
+bool downgrade_to_reader ()
 Downgrade writer to become a reader.
 

Detailed Description

-

The scoped lock pattern for write locks.

-

Scoped locks help avoid the common problem of forgetting to release the lock. This type also serves as the node for queuing locks.

-

The documentation for this class was generated from the following file:
    -
  • reader_writer_lock.h
  • +

    The scoped locking pattern.

    +

    It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

    +

    Constructor & Destructor Documentation

    + +
    +
    + + + + + +
    + + + + + + + +
    tbb::queuing_rw_mutex::scoped_lock::scoped_lock ()
    +
    +inline
    +
    + +

    Construct lock that has not acquired a mutex.

    +

    Equivalent to zero-initialization of *this.

    + +
    +
    +

    Member Function Documentation

    + +
    +
    + + + + + + + +
    bool tbb::queuing_rw_mutex::scoped_lock::upgrade_to_writer ()
    +
    + +

    Upgrade reader to become a writer.

    +

    Returns whether the upgrade happened without releasing and re-acquiring the lock

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • queuing_rw_mutex.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00169.png b/doc/html/a00169.png index a999a7d0cd..227e99a9e7 100644 Binary files a/doc/html/a00169.png and b/doc/html/a00169.png differ diff --git a/doc/html/a00170.html b/doc/html/a00170.html index 683e408793..fe27a145d1 100644 --- a/doc/html/a00170.html +++ b/doc/html/a00170.html @@ -4,7 +4,7 @@ -tbb::null_rw_mutex::scoped_lock Class Reference +tbb::recursive_mutex::scoped_lock Class Reference @@ -33,61 +33,75 @@
-
tbb::null_rw_mutex::scoped_lock Class Reference
+
tbb::recursive_mutex::scoped_lock Class Reference
-

Represents acquisition of a mutex. +

The scoped locking pattern. More...

-

#include <null_rw_mutex.h>

+

#include <recursive_mutex.h>

-Inheritance diagram for tbb::null_rw_mutex::scoped_lock:
+Inheritance diagram for tbb::recursive_mutex::scoped_lock:
- - + +
- - - - - - - - - - - - + + + + + + + + + + + + + + + + + + +

Public Member Functions

scoped_lock (null_rw_mutex &, bool=true)
 
-void acquire (null_rw_mutex &, bool=true)
 
-bool upgrade_to_writer ()
 
-bool downgrade_to_reader ()
 
-bool try_acquire (null_rw_mutex &, bool=true)
 
-void release ()
 
scoped_lock ()
 Construct lock that has not acquired a recursive_mutex.
 
scoped_lock (recursive_mutex &mutex)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
+void acquire (recursive_mutex &mutex)
 Acquire lock on given mutex.
 
+bool try_acquire (recursive_mutex &mutex)
 Try acquire lock on given recursive_mutex.
 
+void release ()
 Release lock.
 
+ + +

+Friends

+class recursive_mutex
 

Detailed Description

-

Represents acquisition of a mutex.

+

The scoped locking pattern.

+

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.


The documentation for this class was generated from the following file:
    -
  • null_rw_mutex.h
  • +
  • recursive_mutex.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00170.png b/doc/html/a00170.png index 081a54dff5..9d4ec98b91 100644 Binary files a/doc/html/a00170.png and b/doc/html/a00170.png differ diff --git a/doc/html/a00171.html b/doc/html/a00171.html index d41c0c38a7..05a75da378 100644 --- a/doc/html/a00171.html +++ b/doc/html/a00171.html @@ -4,7 +4,7 @@ -tbb::internal::critical_section_v4::scoped_lock Class Reference +tbb::mutex::scoped_lock Class Reference @@ -33,39 +33,75 @@
-
tbb::internal::critical_section_v4::scoped_lock Class Reference
+
tbb::mutex::scoped_lock Class Reference
+ +

The scoped locking pattern. + More...

+ +

#include <mutex.h>

-Inheritance diagram for tbb::internal::critical_section_v4::scoped_lock:
+Inheritance diagram for tbb::mutex::scoped_lock:
- - + +
- - + + + + + + + + + + + + + + + + + + +

Public Member Functions

scoped_lock (critical_section_v4 &lock_me)
 
scoped_lock ()
 Construct lock that has not acquired a mutex.
 
scoped_lock (mutex &mutex)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
+void acquire (mutex &mutex)
 Acquire lock on given mutex.
 
+bool try_acquire (mutex &mutex)
 Try acquire lock on given mutex.
 
+void release ()
 Release lock.
 
+ + +

+Friends

+class mutex
 
-
The documentation for this class was generated from the following file:
    -
  • critical_section.h
  • +

    Detailed Description

    +

    The scoped locking pattern.

    +

    It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

    +

    The documentation for this class was generated from the following file:
      +
    • mutex.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00171.png b/doc/html/a00171.png index 15626cfa0f..5450176d7f 100644 Binary files a/doc/html/a00171.png and b/doc/html/a00171.png differ diff --git a/doc/html/a00172.html b/doc/html/a00172.html index 56e3688c7e..40e5f920a1 100644 --- a/doc/html/a00172.html +++ b/doc/html/a00172.html @@ -4,7 +4,7 @@ -tbb::mutex::scoped_lock Class Reference +tbb::spin_mutex::scoped_lock Class Reference @@ -33,75 +33,101 @@
-
tbb::mutex::scoped_lock Class Reference
+
tbb::spin_mutex::scoped_lock Class Reference
-

The scoped locking pattern. +

Represents acquisition of a mutex. More...

-

#include <mutex.h>

+

#include <spin_mutex.h>

-Inheritance diagram for tbb::mutex::scoped_lock:
+Inheritance diagram for tbb::spin_mutex::scoped_lock:
- - + +
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

Public Member Functions

scoped_lock ()
 Construct lock that has not acquired a mutex.
 
scoped_lock (mutex &mutex)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void acquire (mutex &mutex)
 Acquire lock on given mutex.
 
-bool try_acquire (mutex &mutex)
 Try acquire lock on given mutex.
 
-void release ()
 Release lock.
 
scoped_lock ()
 Construct without acquiring a mutex.
 
scoped_lock (spin_mutex &m)
 Construct and acquire lock on a mutex.
 
+void acquire (spin_mutex &m)
 Acquire lock.
 
bool try_acquire (spin_mutex &m)
 Try acquiring lock (non-blocking) More...
 
+void release ()
 Release lock.
 
~scoped_lock ()
 Destroy lock. If holding a lock, releases the lock first.
 
- - + +

Friends

-class mutex
 
+class spin_mutex
 

Detailed Description

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

The documentation for this class was generated from the following file:
    -
  • mutex.h
  • +

    Represents acquisition of a mutex.

    +

    Member Function Documentation

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool tbb::spin_mutex::scoped_lock::try_acquire (spin_mutexm)
    +
    +inline
    +
    + +

    Try acquiring lock (non-blocking)

    +

    Return true if lock acquired; false otherwise.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • spin_mutex.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00172.png b/doc/html/a00172.png index 5450176d7f..25da9c6ba0 100644 Binary files a/doc/html/a00172.png and b/doc/html/a00172.png differ diff --git a/doc/html/a00173.html b/doc/html/a00173.html index 4cdca67c6e..2d3255cdae 100644 --- a/doc/html/a00173.html +++ b/doc/html/a00173.html @@ -4,7 +4,7 @@ -tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference +tbb::null_rw_mutex::scoped_lock Class Reference @@ -33,64 +33,61 @@
-
tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference
+
tbb::null_rw_mutex::scoped_lock Class Reference
-

The scoped lock pattern for read locks. +

Represents acquisition of a mutex. More...

-

#include <reader_writer_lock.h>

+

#include <null_rw_mutex.h>

-Inheritance diagram for tbb::interface5::reader_writer_lock::scoped_lock_read:
+Inheritance diagram for tbb::null_rw_mutex::scoped_lock:
- - + +
- - - - - - - - - - -

Public Member Functions

scoped_lock_read (reader_writer_lock &lock)
 Construct with blocking attempt to acquire read lock on the passed-in lock.
 
~scoped_lock_read ()
 Destructor, releases the read lock.
 
-void * operator new (size_t s)
 
-void operator delete (void *p)
 
- - - + + + + + + + + + + + +

-Friends

-class reader_writer_lock
 
scoped_lock (null_rw_mutex &, bool=true)
 
+void acquire (null_rw_mutex &, bool=true)
 
+bool upgrade_to_writer ()
 
+bool downgrade_to_reader ()
 
+bool try_acquire (null_rw_mutex &, bool=true)
 
+void release ()
 

Detailed Description

-

The scoped lock pattern for read locks.

+

Represents acquisition of a mutex.


The documentation for this class was generated from the following file:
    -
  • reader_writer_lock.h
  • +
  • null_rw_mutex.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00173.png b/doc/html/a00173.png index 10066bd980..081a54dff5 100644 Binary files a/doc/html/a00173.png and b/doc/html/a00173.png differ diff --git a/doc/html/a00174.html b/doc/html/a00174.html index 61e7172953..e5084893e3 100644 --- a/doc/html/a00174.html +++ b/doc/html/a00174.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::sender< T > Class Template Reference +tbb::null_mutex::scoped_lock Class Reference @@ -33,115 +33,55 @@
-
tbb::flow::interface8::sender< T > Class Template Referenceabstract
+
tbb::null_mutex::scoped_lock Class Reference
-

Pure virtual template class that defines a sender of messages of type T. +

Represents acquisition of a mutex. More...

-

#include <flow_graph.h>

+

#include <null_mutex.h>

-Inheritance diagram for tbb::flow::interface8::sender< T >:
+Inheritance diagram for tbb::null_mutex::scoped_lock:
- - -tbb::flow::interface8::broadcast_node< T > -tbb::flow::interface8::buffer_node< T, A > -tbb::flow::interface8::limiter_node< T > -tbb::flow::interface8::overwrite_node< T > -tbb::flow::interface8::priority_queue_node< T, Compare, A > -tbb::flow::interface8::queue_node< T, A > -tbb::flow::interface8::write_once_node< T > -tbb::flow::interface8::sequencer_node< T, A > + +
- - - - - - - - - - - - -

-Public Types

-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + +

Public Member Functions

-virtual bool register_successor (successor_type &r)=0
 Add a new successor to this node.
 
-virtual bool remove_successor (successor_type &r)=0
 Removes a successor from this node.
 
-virtual bool try_get (T &)
 Request an item from the sender.
 
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
-virtual built_successors_typebuilt_successors ()=0
 
-virtual void internal_add_built_successor (successor_type &)=0
 
-virtual void internal_delete_built_successor (successor_type &)=0
 
-virtual void copy_successors (successor_list_type &)=0
 
-virtual size_t successor_count ()=0
 
scoped_lock (null_mutex &)
 
+void acquire (null_mutex &)
 
+bool try_acquire (null_mutex &)
 
+void release ()
 

Detailed Description

-

template<typename T>
-class tbb::flow::interface8::sender< T >

- -

Pure virtual template class that defines a sender of messages of type T.

+

Represents acquisition of a mutex.


The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00174.png b/doc/html/a00174.png index f8d0e860bb..d8565aa377 100644 Binary files a/doc/html/a00174.png and b/doc/html/a00174.png differ diff --git a/doc/html/a00175.html b/doc/html/a00175.html index 9dcce5ad1e..d802f6cae6 100644 --- a/doc/html/a00175.html +++ b/doc/html/a00175.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::sender< dependency_msg< T, Factory > > Class Template Reference +tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference @@ -33,74 +33,64 @@
-
tbb::flow::interface8::sender< dependency_msg< T, Factory > > Class Template Referenceabstract
+
tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference
+ +

The scoped lock pattern for read locks. + More...

+ +

#include <reader_writer_lock.h>

-Inheritance diagram for tbb::flow::interface8::sender< dependency_msg< T, Factory > >:
+Inheritance diagram for tbb::interface5::reader_writer_lock::scoped_lock_read:
- - -tbb::flow::interface8::proxy_dependency_sender< T, Factory > + +
- - - - - - -

-Public Types

-typedef receiver
-< dependency_msg< T, Factory > > 
dependency_successor_type
 The successor type for this sender.
 
-typedef
-proxy_dependency_sender< T,
-Factory > 
proxy
 
- - - - - - - - - - - - - - - - + + + + + + + + + + +

Public Member Functions

-virtual bool register_successor (dependency_successor_type &r)=0
 Add a new successor to this node.
 
-virtual bool remove_successor (dependency_successor_type &r)=0
 Removes a successor from this node.
 
-virtual bool try_get (dependency_msg< T, Factory > &)
 Request an item from the sender.
 
-virtual bool try_reserve (dependency_msg< T, Factory > &)
 Reserves an item in the sender.
 
-ordinary_sender & ordinary_sender ()
 
-bool has_host_successors ()
 
scoped_lock_read (reader_writer_lock &lock)
 Construct with blocking attempt to acquire read lock on the passed-in lock.
 
~scoped_lock_read ()
 Destructor, releases the read lock.
 
+void * operator new (size_t s)
 
+void operator delete (void *p)
 
+ + +

+Friends

+class reader_writer_lock
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +

    Detailed Description

    +

    The scoped lock pattern for read locks.

    +

    The documentation for this class was generated from the following file:
      +
    • reader_writer_lock.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00175.png b/doc/html/a00175.png index f942f222c6..10066bd980 100644 Binary files a/doc/html/a00175.png and b/doc/html/a00175.png differ diff --git a/doc/html/a00176.html b/doc/html/a00176.html index f9bddddae2..e5fdf8df86 100644 --- a/doc/html/a00176.html +++ b/doc/html/a00176.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::sequencer_node< T, A > Class Template Reference +tbb::flow::interface8::sender< T > Class Template Reference @@ -33,358 +33,115 @@
-
tbb::flow::interface8::sequencer_node< T, A > Class Template Reference
+
tbb::flow::interface8::sender< T > Class Template Referenceabstract
-

Forwards messages in sequence order. +

Pure virtual template class that defines a sender of messages of type T. More...

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::sequencer_node< T, A >:
+Inheritance diagram for tbb::flow::interface8::sender< T >:
- - -tbb::flow::interface8::queue_node< T, A > -tbb::flow::interface8::buffer_node< T, A > -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > + + +tbb::flow::interface8::broadcast_node< T > +tbb::flow::interface8::buffer_node< T, A > +tbb::flow::interface8::limiter_node< T > +tbb::flow::interface8::overwrite_node< T > +tbb::flow::interface8::priority_queue_node< T, Compare, A > +tbb::flow::interface8::queue_node< T, A > +tbb::flow::interface8::write_once_node< T > +tbb::flow::interface8::sequencer_node< T, A >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - + + + - +

Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::queue_node< T, A >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::buffer_node< T, A >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef buffer_node< T, A > class_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
typedef
built_successors_type::edge_list_type 
successor_list_type
 
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

-template<typename Sequencer >
 sequencer_node (graph &g, const Sequencer &s)
 Constructor.
 
sequencer_node (const sequencer_node &src)
 Copy constructor.
 
~sequencer_node ()
 Destructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::queue_node< T, A >
queue_node (graph &g)
 Constructor.
 
queue_node (const queue_node &src)
 Copy constructor.
 
- Public Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
-void internal_add_built_successor (successor_type &r)
 
-void internal_delete_built_successor (successor_type &r)
 
-void internal_add_built_predecessor (predecessor_type &p)
 
-void internal_delete_built_predecessor (predecessor_type &p)
 
-size_t predecessor_count ()
 
-size_t successor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Types

enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef buffer_node< T, A >
-::size_type 
size_type
 
-typedef buffer_node< T, A >
-::buffer_operation 
sequencer_operation
 
- Protected Types inherited from tbb::flow::interface8::queue_node< T, A >
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef buffer_node< T, A > base_type
 
-typedef base_type::size_type size_type
 
-typedef base_type::buffer_operation queue_operation
 
- Protected Types inherited from tbb::flow::interface8::buffer_node< T, A >
enum  op_type {
-  reg_succ, -rem_succ, -req_item, -res_item, -
-  rel_res, -con_res, -put_item, -try_fwd_task, -
-  add_blt_succ, -del_blt_succ, -add_blt_pred, -del_blt_pred, -
-  blt_succ_cnt, -blt_pred_cnt, -blt_succ_cpy, -blt_pred_cpy -
- }
 
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef size_t size_type
 
-typedef
-internal::aggregating_functor
-< class_type, buffer_operation
handler_type
 
-typedef sender< T >
-::built_successors_type 
built_successors_type
 
-typedef receiver< T >
-::built_predecessors_type 
built_predecessors_type
 
- - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Additional Inherited Members

- Protected Member Functions inherited from tbb::flow::interface8::queue_node< T, A >
-void internal_forward_task (queue_operation *op)
 Tries to forward valid items to successors.
 
-void internal_pop (queue_operation *op)
 
-void internal_reserve (queue_operation *op)
 
-void internal_consume (queue_operation *op)
 
-void reset_node (reset_flags f)
 
- Protected Attributes inherited from tbb::flow::interface8::buffer_node< T, A >
-internal::round_robin_cache< T,
-null_rw_mutex
my_successors
 
-internal::edge_container
-< predecessor_type
my_built_predecessors
 
-bool forwarder_busy
 
-internal::aggregator
-< handler_type,
-buffer_operation
my_aggregator
 
+virtual bool register_successor (successor_type &r)=0
 Add a new successor to this node.
 
+virtual bool remove_successor (successor_type &r)=0
 Removes a successor from this node.
 
+virtual bool try_get (T &)
 Request an item from the sender.
 
+virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
+virtual bool try_release ()
 Releases the reserved item.
 
+virtual bool try_consume ()
 Consumes the reserved item.
 
+virtual built_successors_typebuilt_successors ()=0
 
+virtual void internal_add_built_successor (successor_type &)=0
 
+virtual void internal_delete_built_successor (successor_type &)=0
 
+virtual void copy_successors (successor_list_type &)=0
 
+virtual size_t successor_count ()=0
 

Detailed Description

-

template<typename T, typename A = cache_aligned_allocator<T>>
-class tbb::flow::interface8::sequencer_node< T, A >

+

template<typename T>
+class tbb::flow::interface8::sender< T >

-

Forwards messages in sequence order.

+

Pure virtual template class that defines a sender of messages of type T.


The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00176.png b/doc/html/a00176.png index 2190e2e8ed..f8d0e860bb 100644 Binary files a/doc/html/a00176.png and b/doc/html/a00176.png differ diff --git a/doc/html/a00177.html b/doc/html/a00177.html index 8ce4effac5..cc82166a41 100644 --- a/doc/html/a00177.html +++ b/doc/html/a00177.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::source_node< Output > Class Template Reference +tbb::flow::interface8::sender< dependency_msg< T, Factory > > Class Template Reference @@ -33,218 +33,74 @@
-
tbb::flow::interface8::source_node< Output > Class Template Reference
+
tbb::flow::interface8::sender< dependency_msg< T, Factory > > Class Template Referenceabstract
- -

An executable node that acts as a source, i.e. it has no predecessors. - More...

- -

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::source_node< Output >:
+Inheritance diagram for tbb::flow::interface8::sender< dependency_msg< T, Factory > >:
- - -tbb::flow::interface8::graph_node -tbb::flow::interface8::sender< Output > + + +tbb::flow::interface8::proxy_dependency_sender< T, Factory >
- - - - - - - - - - - - - - - - - - - - + + + - - - - +proxy_dependency_sender< T,
+Factory >  +

Public Types

-typedef Output output_type
 The type of the output message, which is complete.
 
-typedef receiver< Output > successor_type
 The type of successors of this node.
 
-typedef null_type input_type
 
-typedef sender< output_type >
-::built_successors_type 
built_successors_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< Output >
-typedef Output output_type
 The output type of this sender.
 
-typedef receiver< Output > successor_type
 The successor type for this node.
 
+
+typedef receiver
+< dependency_msg< T, Factory > > 
successor_type
 The successor type for this sender.
 
typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
proxy
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

-template<typename Body >
 source_node (graph &g, Body body, bool is_active=true)
 Constructor for a node with a successor.
 
source_node (const source_node &src)
 Copy constructor.
 
~source_node ()
 The destructor.
 
-void set_name (const char *name)
 
-bool register_successor (successor_type &r)
 Add a new successor to this node.
 
-bool remove_successor (successor_type &r)
 Removes a successor from this node.
 
-built_successors_typebuilt_successors ()
 
-void internal_add_built_successor (successor_type &r)
 
-void internal_delete_built_successor (successor_type &r)
 
-size_t successor_count ()
 
-void copy_successors (successor_list_type &v)
 
-bool try_get (output_type &v)
 Request an item from the node.
 
-bool try_reserve (output_type &v)
 Reserves an item.
 
bool try_release ()
 Release a reserved item. More...
 
-bool try_consume ()
 Consumes a reserved item.
 
-void activate ()
 Activates a node that was created in the inactive state.
 
-template<typename Body >
Body copy_function_object ()
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - - -

-Protected Member Functions

-void reset_node (reset_flags f)
 resets the source_node to its initial state
 
- - - -

-Friends

-class internal::source_task_bypass< source_node< output_type > >
 
- - - - - - - - + + + + + + + + + + + + + + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
+virtual bool register_successor (successor_type &r)=0
 Add a new successor to this node.
 
+virtual bool remove_successor (successor_type &r)=0
 Removes a successor from this node.
 
+virtual bool try_get (dependency_msg< T, Factory > &)
 Request an item from the sender.
 
+virtual bool try_reserve (dependency_msg< T, Factory > &)
 Reserves an item in the sender.
 
+ordinary_sender & ordinary_sender ()
 
+bool has_host_successors ()
 
-

Detailed Description

-

template<typename Output>
-class tbb::flow::interface8::source_node< Output >

- -

An executable node that acts as a source, i.e. it has no predecessors.

-

Member Function Documentation

- -
-
-
-template<typename Output >
- - - - - -
- - - - - - - -
bool tbb::flow::interface8::source_node< Output >::try_release ()
-
-inlinevirtual
-
- -

Release a reserved item.

-

true = item has been released and so remains in sender, dest must request or reserve future items

- -

Reimplemented from tbb::flow::interface8::sender< Output >.

- -
-

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00177.png b/doc/html/a00177.png index a8bbd54a47..f942f222c6 100644 Binary files a/doc/html/a00177.png and b/doc/html/a00177.png differ diff --git a/doc/html/a00178.html b/doc/html/a00178.html index 491f3e19ef..8dc436eebb 100644 --- a/doc/html/a00178.html +++ b/doc/html/a00178.html @@ -4,7 +4,7 @@ -tbb::spin_mutex Class Reference +tbb::flow::interface8::sequencer_node< T, A > Class Template Reference @@ -33,147 +33,358 @@
-
tbb::spin_mutex Class Reference
+
tbb::flow::interface8::sequencer_node< T, A > Class Template Reference
-

A lock that occupies a single byte. +

Forwards messages in sequence order. More...

-

#include <spin_mutex.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::spin_mutex:
+Inheritance diagram for tbb::flow::interface8::sequencer_node< T, A >:
- - + + +tbb::flow::interface8::queue_node< T, A > +tbb::flow::interface8::buffer_node< T, A > +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T >
- - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
 

+Public Types

+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::queue_node< T, A >
+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::buffer_node< T, A >
+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef buffer_node< T, A > class_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 spin_mutex ()
 Construct unacquired lock. More...
 
-void __TBB_EXPORTED_METHOD internal_construct ()
 Internal constructor with ITT instrumentation.
 
-void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
-void unlock ()
 Release lock.
 
+template<typename Sequencer >
 sequencer_node (graph &g, const Sequencer &s)
 Constructor.
 
sequencer_node (const sequencer_node &src)
 Copy constructor.
 
~sequencer_node ()
 Destructor.
 
+void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::queue_node< T, A >
queue_node (graph &g)
 Constructor.
 
queue_node (const queue_node &src)
 Copy constructor.
 
- Public Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
+void internal_add_built_successor (successor_type &r)
 
+void internal_delete_built_successor (successor_type &r)
 
+void internal_add_built_predecessor (predecessor_type &p)
 
+void internal_delete_built_predecessor (predecessor_type &p)
 
+size_t predecessor_count ()
 
+size_t successor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = false
 

+Protected Types

enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef buffer_node< T, A >
+::size_type 
size_type
 
+typedef buffer_node< T, A >
+::buffer_operation 
sequencer_operation
 
- Protected Types inherited from tbb::flow::interface8::queue_node< T, A >
enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef buffer_node< T, A > base_type
 
+typedef base_type::size_type size_type
 
+typedef base_type::buffer_operation queue_operation
 
- Protected Types inherited from tbb::flow::interface8::buffer_node< T, A >
enum  op_type {
+  reg_succ, +rem_succ, +req_item, +res_item, +
+  rel_res, +con_res, +put_item, +try_fwd_task, +
+  add_blt_succ, +del_blt_succ, +add_blt_pred, +del_blt_pred, +
+  blt_succ_cnt, +blt_pred_cnt, +blt_succ_cpy, +blt_pred_cpy +
+ }
 
enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef size_t size_type
 
+typedef
+internal::aggregating_functor
+< class_type, buffer_operation
handler_type
 
+typedef sender< T >
+::built_successors_type 
built_successors_type
 
+typedef receiver< T >
+::built_predecessors_type 
built_predecessors_type
 
- - - + + + + + + + + + + + + + + + + + + + + + +

-Friends

-class scoped_lock
 

+Additional Inherited Members

- Protected Member Functions inherited from tbb::flow::interface8::queue_node< T, A >
+void internal_forward_task (queue_operation *op)
 Tries to forward valid items to successors.
 
+void internal_pop (queue_operation *op)
 
+void internal_reserve (queue_operation *op)
 
+void internal_consume (queue_operation *op)
 
+void reset_node (reset_flags f)
 
- Protected Attributes inherited from tbb::flow::interface8::buffer_node< T, A >
+internal::round_robin_cache< T,
+null_rw_mutex
my_successors
 
+internal::edge_container
+< predecessor_type
my_built_predecessors
 
+bool forwarder_busy
 
+internal::aggregator
+< handler_type,
+buffer_operation
my_aggregator
 

Detailed Description

-

A lock that occupies a single byte.

-

A spin_mutex is a spin mutex that fits in a single byte. It should be used only for locking short critical sections (typically less than 20 instructions) when fairness is not an issue. If zero-initialized, the mutex is considered unheld.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
tbb::spin_mutex::spin_mutex ()
-
-inline
-
- -

Construct unacquired lock.

-

Equivalent to zero-initialization of *this.

- -

References internal_construct().

+

template<typename T, typename A = cache_aligned_allocator<T>>
+class tbb::flow::interface8::sequencer_node< T, A >

-
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::spin_mutex::try_lock ()
-
-inline
-
- -

Try acquiring lock (non-blocking)

-

Return true if lock acquired; false otherwise.

- -

References tbb::aligned_space< T, N >::begin().

- -
-
-
The documentation for this class was generated from the following file:
    -
  • spin_mutex.h
  • +

    Forwards messages in sequence order.

    +

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00178.png b/doc/html/a00178.png index 5dfc58974f..2190e2e8ed 100644 Binary files a/doc/html/a00178.png and b/doc/html/a00178.png differ diff --git a/doc/html/a00179.html b/doc/html/a00179.html index a0f523e76c..3098e23ab5 100644 --- a/doc/html/a00179.html +++ b/doc/html/a00179.html @@ -4,7 +4,7 @@ -tbb::spin_rw_mutex_v3 Class Reference +tbb::flow::interface8::source_node< Output > Class Template Reference @@ -33,151 +33,192 @@
-
tbb::spin_rw_mutex_v3 Class Reference
+
tbb::flow::interface8::source_node< Output > Class Template Reference
-

Fast, unfair, spinning reader-writer lock with backoff and writer-preference. +

An executable node that acts as a source, i.e. it has no predecessors. More...

-

#include <spin_rw_mutex.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::spin_rw_mutex_v3:
+Inheritance diagram for tbb::flow::interface8::source_node< Output >:
- - + + +tbb::flow::interface8::graph_node +tbb::flow::interface8::sender< Output >
- - - - + + + + + + + + + + + + + + + + + + + + + + + + +

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 

+Public Types

+typedef Output output_type
 The type of the output message, which is complete.
 
+typedef receiver< Output > successor_type
 The type of successors of this node.
 
+typedef null_type input_type
 
+typedef sender< output_type >
+::built_successors_type 
built_successors_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< Output >
+typedef Output output_type
 The output type of this sender.
 
+typedef receiver< Output > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

spin_rw_mutex_v3 ()
 Construct unacquired mutex.
 
~spin_rw_mutex_v3 ()
 Destructor asserts if the mutex is acquired, i.e. state is zero.
 
-void lock ()
 Acquire writer lock.
 
bool try_lock ()
 Try acquiring writer lock (non-blocking) More...
 
-void unlock ()
 Release lock.
 
-void lock_read ()
 Acquire reader lock.
 
bool try_lock_read ()
 Try acquiring reader lock (non-blocking) More...
 
+template<typename Body >
 source_node (graph &g, Body body, bool is_active=true)
 Constructor for a node with a successor.
 
source_node (const source_node &src)
 Copy constructor.
 
~source_node ()
 The destructor.
 
+void set_name (const char *name)
 
+bool register_successor (successor_type &r)
 Add a new successor to this node.
 
+bool remove_successor (successor_type &r)
 Removes a successor from this node.
 
+built_successors_typebuilt_successors ()
 
+void internal_add_built_successor (successor_type &r)
 
+void internal_delete_built_successor (successor_type &r)
 
+size_t successor_count ()
 
+void copy_successors (successor_list_type &v)
 
+bool try_get (output_type &v)
 Request an item from the node.
 
+bool try_reserve (output_type &v)
 Reserves an item.
 
bool try_release ()
 Release a reserved item. More...
 
+bool try_consume ()
 Consumes a reserved item.
 
+void activate ()
 Activates a node that was created in the inactive state.
 
+template<typename Body >
Body copy_function_object ()
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - - - - - + + + +

-Static Public Attributes

-static const bool is_rw_mutex = true
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = false
 

+Protected Member Functions

+void reset_node (reset_flags f)
 resets the source_node to its initial state
 
- - - + + +

-Protected Types

-typedef intptr_t state_t
 

+Friends

+class internal::source_task_bypass< source_node< output_type > >
 
- - - - -

-Protected Attributes

state_t state
 State of lock. More...
 
- - - - - - - - - - - + + + + + + + +

-Static Protected Attributes

-static const state_t WRITER = 1
 
-static const state_t WRITER_PENDING = 2
 
-static const state_t READERS = ~(WRITER | WRITER_PENDING)
 
-static const state_t ONE_READER = 4
 
-static const state_t BUSY = WRITER | READERS
 

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

Detailed Description

-

Fast, unfair, spinning reader-writer lock with backoff and writer-preference.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::spin_rw_mutex_v3::try_lock ()
-
-inline
-
+

template<typename Output>
+class tbb::flow::interface8::source_node< Output >

-

Try acquiring writer lock (non-blocking)

-

Return true if lock acquired; false otherwise.

- -
-
- +

An executable node that acts as a source, i.e. it has no predecessors.

+

Member Function Documentation

+
+
+template<typename Output >
- -
- + @@ -185,49 +226,25 @@
bool tbb::spin_rw_mutex_v3::try_lock_read bool tbb::flow::interface8::source_node< Output >::try_release ( )
-inline
-
- -

Try acquiring reader lock (non-blocking)

-

Return true if reader lock acquired; false otherwise.

- -
-
-

Member Data Documentation

- -
-
- - - - +inlinevirtual
- - - - -
state_t tbb::spin_rw_mutex_v3::state
-
-protected
-

State of lock.

-

Bit 0 = writer is holding lock Bit 1 = request by a writer to acquire lock (hint to readers to wait) Bit 2..N = number of readers holding lock

+

Release a reserved item.

+

true = item has been released and so remains in sender, dest must request or reserve future items

-

Referenced by tbb::spin_rw_mutex_v3::scoped_lock::release(), and unlock().

+

Reimplemented from tbb::flow::interface8::sender< Output >.


The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00179.png b/doc/html/a00179.png index ff1efc94ee..a8bbd54a47 100644 Binary files a/doc/html/a00179.png and b/doc/html/a00179.png differ diff --git a/doc/html/a00180.html b/doc/html/a00180.html index 9d130f9777..1e312fef05 100644 --- a/doc/html/a00180.html +++ b/doc/html/a00180.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::split_node< TupleType, Allocator > Class Template Reference +tbb::spin_mutex Class Reference @@ -33,138 +33,147 @@
-
tbb::flow::interface8::split_node< TupleType, Allocator > Class Template Reference
+
tbb::spin_mutex Class Reference
-

split_node: accepts a tuple as input, forwards each element of the tuple to its +

A lock that occupies a single byte. More...

-

#include <flow_graph.h>

+

#include <spin_mutex.h>

-Inheritance diagram for tbb::flow::interface8::split_node< TupleType, Allocator >:
+Inheritance diagram for tbb::spin_mutex:
- - -tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator > -tbb::flow::interface8::graph_node + +
- - - - - - - - - - - - - - - - - - - - + + + +

-Public Types

-typedef
-base_type::output_ports_type 
output_ports_type
 
-typedef base_type::output_type output_type
 
-typedef TupleType input_type
 
-typedef Allocator allocator_type
 
- Public Types inherited from tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >
-typedef TupleType input_type
 
-typedef null_type output_type
 
-typedef
-internal::wrap_tuple_elements
-< N,
-internal::multifunction_output,
-TupleType >::type 
output_ports_type
 
-typedef
-internal::multifunction_input
-< input_type,
-output_ports_type, Allocator > 
fInput_type
 
-typedef
-internal::function_input_queue
-< input_type, Allocator > 
input_queue_type
 

+Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
 
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + +

Public Member Functions

split_node (graph &g)
 
split_node (const split_node &other)
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >
multifunction_node (graph &g, size_t concurrency, Body body)
 
multifunction_node (const multifunction_node &other)
 
-void set_name (const char *name)
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
 spin_mutex ()
 Construct unacquired lock. More...
 
+void __TBB_EXPORTED_METHOD internal_construct ()
 Internal constructor with ITT instrumentation.
 
+void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
+void unlock ()
 Release lock.
 
- - - - - - - - - - - - - - + + + + + + + +

-Additional Inherited Members

- Protected Member Functions inherited from tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >
-void reset_node (reset_flags f)
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
- Static Protected Attributes inherited from tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >
-static const int N
 

+Static Public Attributes

+static const bool is_rw_mutex = false
 
+static const bool is_recursive_mutex = false
 
+static const bool is_fair_mutex = false
 
+ + +

+Friends

+class scoped_lock
 

Detailed Description

-

template<typename TupleType, typename Allocator = cache_aligned_allocator<TupleType>>
-class tbb::flow::interface8::split_node< TupleType, Allocator >

+

A lock that occupies a single byte.

+

A spin_mutex is a spin mutex that fits in a single byte. It should be used only for locking short critical sections (typically less than 20 instructions) when fairness is not an issue. If zero-initialized, the mutex is considered unheld.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + +
tbb::spin_mutex::spin_mutex ()
+
+inline
+
+ +

Construct unacquired lock.

+

Equivalent to zero-initialization of *this.

+ +

References internal_construct().

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
bool tbb::spin_mutex::try_lock ()
+
+inline
+
+ +

Try acquiring lock (non-blocking)

+

Return true if lock acquired; false otherwise.

-

split_node: accepts a tuple as input, forwards each element of the tuple to its

-

The documentation for this class was generated from the following file:
+
+
The documentation for this class was generated from the following file:
    +
  • spin_mutex.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00180.png b/doc/html/a00180.png index a0bcfb49c5..5dfc58974f 100644 Binary files a/doc/html/a00180.png and b/doc/html/a00180.png differ diff --git a/doc/html/a00181.html b/doc/html/a00181.html index 5dcd61a201..102746b5ff 100644 --- a/doc/html/a00181.html +++ b/doc/html/a00181.html @@ -4,7 +4,7 @@ -tbb::structured_task_group Class Reference +tbb::spin_rw_mutex_v3 Class Reference @@ -33,83 +33,201 @@
-
tbb::structured_task_group Class Reference
+
tbb::spin_rw_mutex_v3 Class Reference
+ +

Fast, unfair, spinning reader-writer lock with backoff and writer-preference. + More...

+ +

#include <spin_rw_mutex.h>

-Inheritance diagram for tbb::structured_task_group:
+Inheritance diagram for tbb::spin_rw_mutex_v3:
- - -tbb::internal::task_group_base + +
+ + + + +

+Classes

class  scoped_lock
 The scoped locking pattern. More...
 
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

-template<typename F >
task_group_status run_and_wait (task_handle< F > &h)
 
-task_group_status wait ()
 
- Public Member Functions inherited from tbb::internal::task_group_base
task_group_base (uintptr_t traits=0)
 
-template<typename F >
void run (task_handle< F > &h)
 
-task_group_status wait ()
 
-bool is_canceling ()
 
-void cancel ()
 
spin_rw_mutex_v3 ()
 Construct unacquired mutex.
 
~spin_rw_mutex_v3 ()
 Destructor asserts if the mutex is acquired, i.e. state is zero.
 
+void lock ()
 Acquire writer lock.
 
bool try_lock ()
 Try acquiring writer lock (non-blocking) More...
 
+void unlock ()
 Release lock.
 
+void lock_read ()
 Acquire reader lock.
 
bool try_lock_read ()
 Try acquiring reader lock (non-blocking) More...
 
+ + + + + + + +

+Static Public Attributes

+static const bool is_rw_mutex = true
 
+static const bool is_recursive_mutex = false
 
+static const bool is_fair_mutex = false
 
+ + + +

+Protected Types

+typedef intptr_t state_t
 
+ + + +

+Protected Attributes

state_t state
 State of lock. More...
 
- - - - - - - - - - - - - - - + + + + + + + + + + +

-Additional Inherited Members

- Protected Member Functions inherited from tbb::internal::task_group_base
-task & owner ()
 
-template<typename F >
task_group_status internal_run_and_wait (F &f)
 
-template<typename F , typename Task >
void internal_run (F &f)
 
- Protected Attributes inherited from tbb::internal::task_group_base
-empty_task * my_root
 
-task_group_context my_context
 

+Static Protected Attributes

+static const state_t WRITER = 1
 
+static const state_t WRITER_PENDING = 2
 
+static const state_t READERS = ~(WRITER | WRITER_PENDING)
 
+static const state_t ONE_READER = 4
 
+static const state_t BUSY = WRITER | READERS
 
+

Detailed Description

+

Fast, unfair, spinning reader-writer lock with backoff and writer-preference.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
bool tbb::spin_rw_mutex_v3::try_lock ()
+
+inline
+
+ +

Try acquiring writer lock (non-blocking)

+

Return true if lock acquired; false otherwise.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool tbb::spin_rw_mutex_v3::try_lock_read ()
+
+inline
+
+ +

Try acquiring reader lock (non-blocking)

+

Return true if reader lock acquired; false otherwise.

+ +
+
+

Member Data Documentation

+ +
+
+ + + + + +
+ + + + +
state_t tbb::spin_rw_mutex_v3::state
+
+protected
+
+ +

State of lock.

+

Bit 0 = writer is holding lock Bit 1 = request by a writer to acquire lock (hint to readers to wait) Bit 2..N = number of readers holding lock

+ +

Referenced by tbb::spin_rw_mutex_v3::scoped_lock::release(), and unlock().

+ +
+

The documentation for this class was generated from the following file:
    -
  • task_group.h
  • +
  • spin_rw_mutex.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00181.png b/doc/html/a00181.png index f9335edcea..ff1efc94ee 100644 Binary files a/doc/html/a00181.png and b/doc/html/a00181.png differ diff --git a/doc/html/a00182.html b/doc/html/a00182.html index ad4a01c0c5..7b83198137 100644 --- a/doc/html/a00182.html +++ b/doc/html/a00182.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::internal::successor_cache< T, M > Class Template Reference +tbb::flow::interface8::split_node< TupleType, Allocator > Class Template Reference @@ -33,21 +33,138 @@
+
-
tbb::flow::interface8::internal::successor_cache< T, M > Class Template Reference
+
tbb::flow::interface8::split_node< TupleType, Allocator > Class Template Reference
-
The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00182.png b/doc/html/a00182.png new file mode 100644 index 0000000000..a0bcfb49c5 Binary files /dev/null and b/doc/html/a00182.png differ diff --git a/doc/html/a00183.html b/doc/html/a00183.html index 9439b4f113..c116a745b8 100644 --- a/doc/html/a00183.html +++ b/doc/html/a00183.html @@ -4,7 +4,7 @@ -tbb::interface7::task_arena Class Reference +tbb::structured_task_group Class Reference @@ -33,351 +33,83 @@
-
tbb::interface7::task_arena Class Reference
+
tbb::structured_task_group Class Reference
- -

#include <task_arena.h>

-Inheritance diagram for tbb::interface7::task_arena:
+Inheritance diagram for tbb::structured_task_group:
- - + + +tbb::internal::task_group_base
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +

Public Member Functions

 task_arena (int max_concurrency=automatic, unsigned reserved_for_masters=1)
 Creates task_arena with certain concurrency limits. More...
 
task_arena (const task_arena &s)
 Copies settings from another task_arena.
 
task_arena (tbb::internal::attach)
 Creates an instance of task_arena attached to the current arena of the thread.
 
-void initialize ()
 Forces allocation of the resources for the task_arena as specified in constructor arguments.
 
-void initialize (int max_concurrency, unsigned reserved_for_masters=1)
 Overrides concurrency level and forces initialization of internal representation.
 
void terminate ()
 
 ~task_arena ()
 
bool is_active () const
 
template<typename F >
void enqueue (const F &f)
 
template<typename F >
void enqueue (const F &f, priority_t p)
 
template<typename F >
void execute (F &f)
 
template<typename F >
void execute (const F &f)
 
void debug_wait_until_empty ()
 
+template<typename F >
task_group_status run_and_wait (task_handle< F > &h)
 
+task_group_status wait ()
 
- Public Member Functions inherited from tbb::internal::task_group_base
task_group_base (uintptr_t traits=0)
 
+template<typename F >
void run (task_handle< F > &h)
 
+task_group_status wait ()
 
+bool is_canceling ()
 
+void cancel ()
 
- - - - -

-Static Public Member Functions

-static int current_thread_index ()
 Returns the index, aka slot number, of the calling thread in its current arena.
 
- - - -

-Friends

-class tbb::internal::task_scheduler_observer_v3
 
-

Detailed Description

-

1-to-1 proxy representation class of scheduler's arena Constructors set up settings only, real construction is deferred till the first method invocation Destructor only removes one of the references to the inner arena representation. Final destruction happens when all the references (and the work) are gone.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
tbb::interface7::task_arena::task_arena (int max_concurrency = automatic,
unsigned reserved_for_masters = 1 
)
-
-inline
-
- -

Creates task_arena with certain concurrency limits.

-

Sets up settings only, real construction is deferred till the first method invocation

-
    -
  • max_concurrency specifies total number of slots in arena where threads work
  • -
  • reserved_for_masters specifies number of slots to be used by master threads only. Value of 1 is default and reflects behavior of implicit arenas.
  • -
- -
-
- -
-
- - - - - -
- - - - - - - -
tbb::interface7::task_arena::~task_arena ()
-
-inline
-
-

Removes the reference to the internal arena representation, and destroys the external object. Not thread safe wrt concurrent invocations of other methods.

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
void tbb::interface7::task_arena::debug_wait_until_empty ()
-
-inline
-
-

Wait for all work in the arena to be completed Even submitted by other application threads Joins arena if/when possible (in the same way as execute())

- -
-
- -
-
-
-template<typename F >
- - - - - -
- - - - - - - - -
void tbb::interface7::task_arena::enqueue (const F & f)
-
-inline
-
-

Enqueues a task into the arena to process a functor, and immediately returns. Does not require the calling thread to join the arena

- -
-
- -
-
-
-template<typename F >
- - - - - + + + + + + + + + + + + + + +
- - - - - - - - - - - - - - - - - - -
void tbb::interface7::task_arena::enqueue (const F & f,
priority_t p 
)
-
-inline

+Additional Inherited Members

- Protected Member Functions inherited from tbb::internal::task_group_base
+task & owner ()
 
+template<typename F >
task_group_status internal_run_and_wait (F &f)
 
+template<typename F , typename Task >
void internal_run (F &f)
 
- Protected Attributes inherited from tbb::internal::task_group_base
+empty_task * my_root
 
+task_group_context my_context
 
-
-

Enqueues a task with priority p into the arena to process a functor f, and immediately returns. Does not require the calling thread to join the arena

- -
-
- -
-
-
-template<typename F >
- - - - - -
- - - - - - - - -
void tbb::interface7::task_arena::execute (F & f)
-
-inline
-
-

Joins the arena and executes a functor, then returns If not possible to join, wraps the functor into a task, enqueues it and waits for task completion Can decrement the arena demand for workers, causing a worker to leave and free a slot to the calling thread

- -
-
- -
-
-
-template<typename F >
- - - - - -
- - - - - - - - -
void tbb::interface7::task_arena::execute (const F & f)
-
-inline
-
-

Joins the arena and executes a functor, then returns If not possible to join, wraps the functor into a task, enqueues it and waits for task completion Can decrement the arena demand for workers, causing a worker to leave and free a slot to the calling thread

- -
-
- -
-
- - - - - -
- - - - - - - -
bool tbb::interface7::task_arena::is_active () const
-
-inline
-
-

Returns true if the arena is active (initialized); false otherwise. The name was chosen to match a task_scheduler_init method with the same semantics.

- -
-
- -
-
- - - - - -
- - - - - - - -
void tbb::interface7::task_arena::terminate ()
-
-inline
-
-

Removes the reference to the internal arena representation. Not thread safe wrt concurrent invocations of other methods.

- -
-

The documentation for this class was generated from the following file:
    -
  • task_arena.h
  • +
  • task_group.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00183.png b/doc/html/a00183.png index e9685d4171..f9335edcea 100644 Binary files a/doc/html/a00183.png and b/doc/html/a00183.png differ diff --git a/doc/html/a00184.html b/doc/html/a00184.html index 8ddade1bfe..ecbcf645d8 100644 --- a/doc/html/a00184.html +++ b/doc/html/a00184.html @@ -4,7 +4,7 @@ -tbb::task_group Class Reference +tbb::flow::interface8::internal::successor_cache< T, M > Class Template Reference @@ -33,92 +33,21 @@
-
-
tbb::task_group Class Reference
+
tbb::flow::interface8::internal::successor_cache< T, M > Class Template Reference
-
-Inheritance diagram for tbb::task_group:
-
-
- - -tbb::internal::task_group_base - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-template<typename F >
void run (task_handle< F > &h)
 
-template<typename F >
void run (const F &f)
 
-template<typename F >
task_group_status run_and_wait (const F &f)
 
-template<typename F >
task_group_status run_and_wait (task_handle< F > &h)
 
- Public Member Functions inherited from tbb::internal::task_group_base
task_group_base (uintptr_t traits=0)
 
-template<typename F >
void run (task_handle< F > &h)
 
-task_group_status wait ()
 
-bool is_canceling ()
 
-void cancel ()
 
- - - - - - - - - - - - - - - -

-Additional Inherited Members

- Protected Member Functions inherited from tbb::internal::task_group_base
-task & owner ()
 
-template<typename F >
task_group_status internal_run_and_wait (F &f)
 
-template<typename F , typename Task >
void internal_run (F &f)
 
- Protected Attributes inherited from tbb::internal::task_group_base
-empty_task * my_root
 
-task_group_context my_context
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00185.html b/doc/html/a00185.html index 0f4d9244e7..205efb2513 100644 --- a/doc/html/a00185.html +++ b/doc/html/a00185.html @@ -4,7 +4,7 @@ -tbb::internal::task_group_base Class Reference +tbb::interface7::task_arena Class Reference @@ -33,79 +33,362 @@
-
tbb::internal::task_group_base Class Reference
+
tbb::interface7::task_arena Class Reference
+ +

#include <task_arena.h>

-Inheritance diagram for tbb::internal::task_group_base:
+Inheritance diagram for tbb::interface7::task_arena:
- - -tbb::structured_task_group -tbb::task_group + +
+ + + + +

+Classes

struct  attach
 Tag class used to indicate the "attaching" constructor. More...
 
- - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

task_group_base (uintptr_t traits=0)
 
-template<typename F >
void run (task_handle< F > &h)
 
-task_group_status wait ()
 
-bool is_canceling ()
 
-void cancel ()
 
 task_arena (int max_concurrency=automatic, unsigned reserved_for_masters=1)
 Creates task_arena with certain concurrency limits. More...
 
task_arena (const task_arena &s)
 Copies settings from another task_arena.
 
task_arena (attach)
 Creates an instance of task_arena attached to the current arena of the thread.
 
+void initialize ()
 Forces allocation of the resources for the task_arena as specified in constructor arguments.
 
+void initialize (int max_concurrency, unsigned reserved_for_masters=1)
 Overrides concurrency level and forces initialization of internal representation.
 
+void initialize (attach)
 Attaches this instance to the current arena of the thread.
 
void terminate ()
 
 ~task_arena ()
 
bool is_active () const
 
template<typename F >
void enqueue (const F &f)
 
template<typename F >
void enqueue (const F &f, priority_t p)
 
template<typename F >
void execute (F &f)
 
template<typename F >
void execute (const F &f)
 
void debug_wait_until_empty ()
 
- - - - - - - - - + + + +

-Protected Member Functions

-task & owner ()
 
-template<typename F >
task_group_status internal_run_and_wait (F &f)
 
-template<typename F , typename Task >
void internal_run (F &f)
 

+Static Public Member Functions

+static int current_thread_index ()
 Returns the index, aka slot number, of the calling thread in its current arena.
 
- - - - - + + + +

-Protected Attributes

-empty_task * my_root
 
-task_group_context my_context
 

+Friends

+class tbb::internal::task_scheduler_observer_v3
 
+

Detailed Description

+

1-to-1 proxy representation class of scheduler's arena Constructors set up settings only, real construction is deferred till the first method invocation Destructor only removes one of the references to the inner arena representation. Final destruction happens when all the references (and the work) are gone.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
tbb::interface7::task_arena::task_arena (int max_concurrency = automatic,
unsigned reserved_for_masters = 1 
)
+
+inline
+
+ +

Creates task_arena with certain concurrency limits.

+

Sets up settings only, real construction is deferred till the first method invocation

+
    +
  • max_concurrency specifies total number of slots in arena where threads work
  • +
  • reserved_for_masters specifies number of slots to be used by master threads only. Value of 1 is default and reflects behavior of implicit arenas.
  • +
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
tbb::interface7::task_arena::~task_arena ()
+
+inline
+
+

Removes the reference to the internal arena representation, and destroys the external object. Not thread safe wrt concurrent invocations of other methods.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
void tbb::interface7::task_arena::debug_wait_until_empty ()
+
+inline
+
+

Wait for all work in the arena to be completed Even submitted by other application threads Joins arena if/when possible (in the same way as execute())

+ +
+
+ +
+
+
+template<typename F >
+ + + + + +
+ + + + + + + + +
void tbb::interface7::task_arena::enqueue (const F & f)
+
+inline
+
+

Enqueues a task into the arena to process a functor, and immediately returns. Does not require the calling thread to join the arena

+ +
+
+ +
+
+
+template<typename F >
+ + + + +
+ + + + + + + + + + + + + + + + + + +
void tbb::interface7::task_arena::enqueue (const F & f,
priority_t p 
)
+
+inline
+
+

Enqueues a task with priority p into the arena to process a functor f, and immediately returns. Does not require the calling thread to join the arena

+ +
+
+ +
+
+
+template<typename F >
+ + + + + +
+ + + + + + + + +
void tbb::interface7::task_arena::execute (F & f)
+
+inline
+
+

Joins the arena and executes a functor, then returns If not possible to join, wraps the functor into a task, enqueues it and waits for task completion Can decrement the arena demand for workers, causing a worker to leave and free a slot to the calling thread

+ +
+
+ +
+
+
+template<typename F >
+ + + + + +
+ + + + + + + + +
void tbb::interface7::task_arena::execute (const F & f)
+
+inline
+
+

Joins the arena and executes a functor, then returns If not possible to join, wraps the functor into a task, enqueues it and waits for task completion Can decrement the arena demand for workers, causing a worker to leave and free a slot to the calling thread

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool tbb::interface7::task_arena::is_active () const
+
+inline
+
+

Returns true if the arena is active (initialized); false otherwise. The name was chosen to match a task_scheduler_init method with the same semantics.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
void tbb::interface7::task_arena::terminate ()
+
+inline
+
+

Removes the reference to the internal arena representation. Not thread safe wrt concurrent invocations of other methods.

+ +
+

The documentation for this class was generated from the following file:
    -
  • task_group.h
  • +
  • task_arena.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00185.png b/doc/html/a00185.png index e95fec5546..e9685d4171 100644 Binary files a/doc/html/a00185.png and b/doc/html/a00185.png differ diff --git a/doc/html/a00186.html b/doc/html/a00186.html index e471d5b5df..c31ebb0903 100644 --- a/doc/html/a00186.html +++ b/doc/html/a00186.html @@ -4,7 +4,7 @@ -tbb::task_group_context Struct Reference +tbb::task_group Class Reference @@ -33,25 +33,92 @@
+
-
tbb::task_group_context Struct Reference
+
tbb::task_group Class Reference
- -

#include <parallel_invoke.h>

-

Detailed Description

-

Dummy to avoid cluttering the bulk of the header with enormous amount of ifdefs.

-

The documentation for this struct was generated from the following file:
    -
  • parallel_invoke.h
  • +
    +Inheritance diagram for tbb::task_group:
    +
    +
    + + +tbb::internal::task_group_base + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<typename F >
    void run (task_handle< F > &h)
     
    +template<typename F >
    void run (const F &f)
     
    +template<typename F >
    task_group_status run_and_wait (const F &f)
     
    +template<typename F >
    task_group_status run_and_wait (task_handle< F > &h)
     
    - Public Member Functions inherited from tbb::internal::task_group_base
    task_group_base (uintptr_t traits=0)
     
    +template<typename F >
    void run (task_handle< F > &h)
     
    +task_group_status wait ()
     
    +bool is_canceling ()
     
    +void cancel ()
     
    + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from tbb::internal::task_group_base
    +task & owner ()
     
    +template<typename F >
    task_group_status internal_run_and_wait (F &f)
     
    +template<typename F , typename Task >
    void internal_run (F &f)
     
    - Protected Attributes inherited from tbb::internal::task_group_base
    +empty_task * my_root
     
    +task_group_context my_context
     
    +
    The documentation for this class was generated from the following file:
      +
    • task_group.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00184.png b/doc/html/a00186.png similarity index 100% rename from doc/html/a00184.png rename to doc/html/a00186.png diff --git a/doc/html/a00187.html b/doc/html/a00187.html index 42379a4f36..81a0360698 100644 --- a/doc/html/a00187.html +++ b/doc/html/a00187.html @@ -4,7 +4,7 @@ -tbb::task_handle< F > Class Template Reference +tbb::internal::task_group_base Class Reference @@ -33,48 +33,71 @@
-
tbb::task_handle< F > Class Template Reference
+
tbb::internal::task_group_base Class Reference
-Inheritance diagram for tbb::task_handle< F >:
+Inheritance diagram for tbb::internal::task_group_base:
- - + + +tbb::structured_task_group +tbb::task_group
- - - - + + + + + + + + + + +

Public Member Functions

task_handle (const F &f)
 
-void operator() () const
 
task_group_base (uintptr_t traits=0)
 
+template<typename F >
void run (task_handle< F > &h)
 
+task_group_status wait ()
 
+bool is_canceling ()
 
+void cancel ()
 
- - - - - - - - + + + + + + + + + +

-Friends

-template<typename _F >
class internal::task_handle_task
 
-class task_group
 
-class structured_task_group
 

+Protected Member Functions

+task & owner ()
 
+template<typename F >
task_group_status internal_run_and_wait (F &f)
 
+template<typename F , typename Task >
void internal_run (F &f)
 
+ + + + +

+Protected Attributes

+empty_task * my_root
 
+task_group_context my_context
 

The documentation for this class was generated from the following file:
  • task_group.h
  • @@ -82,7 +105,7 @@

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00187.png b/doc/html/a00187.png index 5f640e9e73..e95fec5546 100644 Binary files a/doc/html/a00187.png and b/doc/html/a00187.png differ diff --git a/doc/html/a00188.html b/doc/html/a00188.html index 572565f8d2..1c0fbad0a9 100644 --- a/doc/html/a00188.html +++ b/doc/html/a00188.html @@ -4,7 +4,7 @@ -tbb::internal::task_handle_task< F > Class Template Reference +tbb::task_group_context Struct Reference @@ -33,39 +33,25 @@
-
-
tbb::internal::task_handle_task< F > Class Template Reference
+
tbb::task_group_context Struct Reference
-
-Inheritance diagram for tbb::internal::task_handle_task< F >:
-
-
- - - -
- - - - -

-Public Member Functions

task_handle_task (task_handle< F > &h)
 
-
The documentation for this class was generated from the following file:
    -
  • task_group.h
  • + +

    #include <parallel_invoke.h>

    +

    Detailed Description

    +

    Dummy to avoid cluttering the bulk of the header with enormous amount of ifdefs.

    +

    The documentation for this struct was generated from the following file:
      +
    • parallel_invoke.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00188.png b/doc/html/a00188.png deleted file mode 100644 index 229263c622..0000000000 Binary files a/doc/html/a00188.png and /dev/null differ diff --git a/doc/html/a00189.html b/doc/html/a00189.html index e49c2e9da2..15a3998ff6 100644 --- a/doc/html/a00189.html +++ b/doc/html/a00189.html @@ -4,7 +4,7 @@ -tbb::task_scheduler_init Class Reference +tbb::task_handle< F > Class Template Reference @@ -33,180 +33,56 @@
-
tbb::task_scheduler_init Class Reference
+
tbb::task_handle< F > Class Template Reference
- -

Class delimiting the scope of task scheduler activity. - More...

- -

#include <task_scheduler_init.h>

-Inheritance diagram for tbb::task_scheduler_init:
+Inheritance diagram for tbb::task_handle< F >:
- - + +
- - - - - - - - - - - - - - - - - - - + + + +

Public Member Functions

void __TBB_EXPORTED_METHOD initialize (int number_of_threads=automatic)
 Ensure that scheduler exists for this thread. More...
 
void __TBB_EXPORTED_METHOD initialize (int number_of_threads, stack_size_type thread_stack_size)
 The overloaded method with stack size parameter. More...
 
-void __TBB_EXPORTED_METHOD terminate ()
 Inverse of method initialize.
 
if (wait_workers_in_terminate) my_scheduler
 
initialize (number_of_threads, thread_stack_size)
 
~task_scheduler_init ()
 Destroy scheduler for this thread if thread has no other live task_scheduler_inits.
 
-bool is_active () const
 Returns true if scheduler is active (initialized); false otherwise.
 
task_handle (const F &f)
 
+void operator() () const
 
- - - - -

-Static Public Member Functions

static int __TBB_EXPORTED_FUNC default_num_threads ()
 Returns the number of threads TBB scheduler would create if initialized by default. More...
 
- - - - -

-Public Attributes

-task_scheduler_init(int
-number_of_threads=automatic,
-stack_size_type
-thread_stack_size=0, bool
-wait_workers_in_terminate=false) 
thread_stack_size = TBB_USE_CAPTURED_EXCEPTION ? propagation_mode_captured : propagation_mode_exact
 Shorthand for default constructor followed by call to initialize(number_of_threads).
 
- - - - - - - -

-Static Public Attributes

-static const int automatic = -1
 Typedef for number of threads that is automatic.
 
-static const int deferred = -2
 Argument to initialize() or constructor that causes initialization to be deferred.
 
-

Detailed Description

-

Class delimiting the scope of task scheduler activity.

-

A thread can construct a task_scheduler_init object and keep it alive while it uses TBB's tasking subsystem (including parallel algorithms).

-

This class allows to customize properties of the TBB task pool to some extent. For example it can limit concurrency level of parallel work initiated by the given thread. It also can be used to specify stack size of the TBB worker threads, though this setting is not effective if the thread pool has already been created.

-

If a parallel construct is used without task_scheduler_init object previously created, the scheduler will be initialized automatically with default settings, and will persist until this thread exits. Default concurrency level is defined as described in task_scheduler_init::initialize().

-

Member Function Documentation

- -
-
- - - - - + + + + + + + +
- - - - - - - -
static int __TBB_EXPORTED_FUNC tbb::task_scheduler_init::default_num_threads ()
-
-static

+Friends

+template<typename _F >
class internal::task_handle_task
 
+class task_group
 
+class structured_task_group
 
-
- -

Returns the number of threads TBB scheduler would create if initialized by default.

-

Result returned by this method does not depend on whether the scheduler has already been initialized.

-

Because tbb 2.0 does not support blocking tasks yet, you may use this method to boost the number of threads in the tbb's internal pool, if your tasks are doing I/O operations. The optimal number of additional threads depends on how much time your tasks spend in the blocked state.

-

Before TBB 3.0 U4 this method returned the number of logical CPU in the system. Currently on Windows, Linux and FreeBSD it returns the number of logical CPUs available to the current process in accordance with its affinity mask.

-

NOTE: The return value of this method never changes after its first invocation. This means that changes in the process affinity mask that took place after this method was first invoked will not affect the number of worker threads in the TBB worker threads pool.

- -
-
- -
-
- - - - - - - - -
void __TBB_EXPORTED_METHOD tbb::task_scheduler_init::initialize (int number_of_threads = automatic)
-
- -

Ensure that scheduler exists for this thread.

-

A value of -1 lets TBB decide on the number of threads, which is usually maximal hardware concurrency for this process, that is the number of logical CPUs on the machine (possibly limited by the processor affinity mask of this process (Windows) or of this thread (Linux, FreeBSD). It is preferable option for production code because it helps to avoid nasty surprises when several TBB based components run side-by-side or in a nested fashion inside the same process.

-

The number_of_threads is ignored if any other task_scheduler_inits currently exist. A thread may construct multiple task_scheduler_inits. Doing so does no harm because the underlying scheduler is reference counted.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
void __TBB_EXPORTED_METHOD tbb::task_scheduler_init::initialize (int number_of_threads,
stack_size_type thread_stack_size 
)
-
- -

The overloaded method with stack size parameter.

-

Overloading is necessary to preserve ABI compatibility

- -
-

The documentation for this class was generated from the following file:
    -
  • task_scheduler_init.h
  • +
  • task_group.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00189.png b/doc/html/a00189.png index 58550fd5aa..5f640e9e73 100644 Binary files a/doc/html/a00189.png and b/doc/html/a00189.png differ diff --git a/doc/html/a00190.html b/doc/html/a00190.html index bfcaaca054..8c28307980 100644 --- a/doc/html/a00190.html +++ b/doc/html/a00190.html @@ -4,7 +4,7 @@ -tbb::interface6::task_scheduler_observer Class Reference +tbb::internal::task_handle_task< F > Class Template Reference @@ -33,234 +33,39 @@
-
tbb::interface6::task_scheduler_observer Class Reference
+
tbb::internal::task_handle_task< F > Class Template Reference
-Inheritance diagram for tbb::interface6::task_scheduler_observer:
+Inheritance diagram for tbb::internal::task_handle_task< F >:
- - -tbb::internal::task_scheduler_observer_v3 + +
- - - - -

-Public Types

enum  { keep_awake = false, -allow_sleep = true - }
 Return commands for may_sleep()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

 task_scheduler_observer (bool local=false)
 Construct local or global observer in inactive state (observation disabled). More...
 
 task_scheduler_observer (task_arena &a)
 Construct local observer for a given arena in inactive state (observation disabled). More...
 
virtual ~task_scheduler_observer ()
 
void observe (bool state=true)
 Enable or disable observation. More...
 
virtual bool may_sleep ()
 The callback can be invoked by a worker thread before it goes to sleep. More...
 
- Public Member Functions inherited from tbb::internal::task_scheduler_observer_v3
void __TBB_EXPORTED_METHOD observe (bool state=true)
 Enable or disable observation. More...
 
-bool is_observing () const
 Returns true if observation is enabled, false otherwise.
 
task_scheduler_observer_v3 ()
 Construct observer with observation disabled.
 
virtual void on_scheduler_entry (bool)
 Entry notification. More...
 
virtual void on_scheduler_exit (bool)
 Exit notification. More...
 
-virtual ~task_scheduler_observer_v3 ()
 Destructor automatically switches observation off if it is enabled.
 
- - - - - - - + +

-Friends

-class internal::task_scheduler_observer_v3
 
-class internal::observer_proxy
 
-class internal::observer_list
 
task_handle_task (task_handle< F > &h)
 
-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - -
tbb::interface6::task_scheduler_observer::task_scheduler_observer (bool local = false)
-
-inline
-
- -

Construct local or global observer in inactive state (observation disabled).

-

For a local observer entry/exit notifications are invoked whenever a worker thread joins/leaves the arena of the observer's owner thread. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task. TODO: Obsolete. Global observer semantics is obsolete as it violates master thread isolation guarantees and is not composable. Thus the current default behavior of the constructor is obsolete too and will be changed in one of the future versions of the library.

- -
-
- -
-
- - - - - -
- - - - - - - - -
tbb::interface6::task_scheduler_observer::task_scheduler_observer (task_arena & a)
-
-inline
-
- -

Construct local observer for a given arena in inactive state (observation disabled).

-

entry/exit notifications are invoked whenever a thread joins/leaves arena. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task.

- -
-
- -
-
- - - - - -
- - - - - - - -
virtual tbb::interface6::task_scheduler_observer::~task_scheduler_observer ()
-
-inlinevirtual
-
-

Destructor protects instance of the observer from concurrent notification. It is recommended to disable observation before destructor of a derived class starts, otherwise it can lead to concurrent notification callback on partly destroyed object

- -

References observe().

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
virtual bool tbb::interface6::task_scheduler_observer::may_sleep ()
-
-inlinevirtual
-
- -

The callback can be invoked by a worker thread before it goes to sleep.

-

If it returns false ('keep_awake'), the thread will keep spinning and looking for work. It will not be called for master threads.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void tbb::interface6::task_scheduler_observer::observe (bool state = true)
-
-inline
-
- -

Enable or disable observation.

-

Warning: concurrent invocations of this method are not safe. Repeated calls with the same state are no-ops.

- -

References tbb::internal::task_scheduler_observer_v3::observe(), and tbb::relaxed.

- -

Referenced by ~task_scheduler_observer().

- -
-

The documentation for this class was generated from the following file:
    -
  • task_scheduler_observer.h
  • +
  • task_group.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00190.png b/doc/html/a00190.png index 37496e9076..229263c622 100644 Binary files a/doc/html/a00190.png and b/doc/html/a00190.png differ diff --git a/doc/html/a00191.html b/doc/html/a00191.html index da0c35029b..7c9f424452 100644 --- a/doc/html/a00191.html +++ b/doc/html/a00191.html @@ -4,7 +4,7 @@ -tbb::internal::task_scheduler_observer_v3 Class Reference +tbb::task_scheduler_init Class Reference @@ -33,150 +33,180 @@
-
tbb::internal::task_scheduler_observer_v3 Class Reference
+
tbb::task_scheduler_init Class Reference
+ +

Class delimiting the scope of task scheduler activity. + More...

+ +

#include <task_scheduler_init.h>

-Inheritance diagram for tbb::internal::task_scheduler_observer_v3:
+Inheritance diagram for tbb::task_scheduler_init:
- - -tbb::interface6::task_scheduler_observer + +
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + +

Public Member Functions

void __TBB_EXPORTED_METHOD observe (bool state=true)
 Enable or disable observation. More...
 
-bool is_observing () const
 Returns true if observation is enabled, false otherwise.
 
task_scheduler_observer_v3 ()
 Construct observer with observation disabled.
 
virtual void on_scheduler_entry (bool)
 Entry notification. More...
 
virtual void on_scheduler_exit (bool)
 Exit notification. More...
 
-virtual ~task_scheduler_observer_v3 ()
 Destructor automatically switches observation off if it is enabled.
 
void __TBB_EXPORTED_METHOD initialize (int number_of_threads=automatic)
 Ensure that scheduler exists for this thread. More...
 
void __TBB_EXPORTED_METHOD initialize (int number_of_threads, stack_size_type thread_stack_size)
 The overloaded method with stack size parameter. More...
 
+void __TBB_EXPORTED_METHOD terminate ()
 Inverse of method initialize.
 
if (wait_workers_in_terminate) my_scheduler
 
initialize (number_of_threads, thread_stack_size)
 
~task_scheduler_init ()
 Destroy scheduler for this thread if thread has no other live task_scheduler_inits.
 
+bool is_active () const
 Returns true if scheduler is active (initialized); false otherwise.
 
+ + + +

+Static Public Member Functions

static int __TBB_EXPORTED_FUNC default_num_threads ()
 Returns the number of threads TBB scheduler would create if initialized by default. More...
 
- - - - - - - + + + + +

-Friends

-class observer_proxy
 
-class observer_list
 
-class interface6::task_scheduler_observer
 

+Public Attributes

+task_scheduler_init(int
+number_of_threads=automatic,
+stack_size_type
+thread_stack_size=0, bool
+wait_workers_in_terminate=false) 
thread_stack_size = TBB_USE_CAPTURED_EXCEPTION ? propagation_mode_captured : propagation_mode_exact
 Shorthand for default constructor followed by call to initialize(number_of_threads).
 
+ + + + + + +

+Static Public Attributes

+static const int automatic = -1
 Typedef for number of threads that is automatic.
 
+static const int deferred = -2
 Argument to initialize() or constructor that causes initialization to be deferred.
 
-

Member Function Documentation

- +

Detailed Description

+

Class delimiting the scope of task scheduler activity.

+

A thread can construct a task_scheduler_init object and keep it alive while it uses TBB's tasking subsystem (including parallel algorithms).

+

This class allows to customize properties of the TBB task pool to some extent. For example it can limit concurrency level of parallel work initiated by the given thread. It also can be used to specify stack size of the TBB worker threads, though this setting is not effective if the thread pool has already been created.

+

If a parallel construct is used without task_scheduler_init object previously created, the scheduler will be initialized automatically with default settings, and will persist until this thread exits. Default concurrency level is defined as described in task_scheduler_init::initialize().

+

Member Function Documentation

+
+ + + + + +
- + - - +
void __TBB_EXPORTED_METHOD tbb::internal::task_scheduler_observer_v3::observe static int __TBB_EXPORTED_FUNC tbb::task_scheduler_init::default_num_threads (bool state = true))
+
+static
-

Enable or disable observation.

-

For local observers the method can be used only when the current thread has the task scheduler initialized or is attached to an arena.

-

Repeated calls with the same state are no-ops.

- -

Referenced by tbb::interface6::task_scheduler_observer::observe(), and ~task_scheduler_observer_v3().

+

Returns the number of threads TBB scheduler would create if initialized by default.

+

Result returned by this method does not depend on whether the scheduler has already been initialized.

+

Because tbb 2.0 does not support blocking tasks yet, you may use this method to boost the number of threads in the tbb's internal pool, if your tasks are doing I/O operations. The optimal number of additional threads depends on how much time your tasks spend in the blocked state.

+

Before TBB 3.0 U4 this method returned the number of logical CPU in the system. Currently on Windows, Linux and FreeBSD it returns the number of logical CPUs available to the current process in accordance with its affinity mask.

+

NOTE: The return value of this method never changes after its first invocation. This means that changes in the process affinity mask that took place after this method was first invoked will not affect the number of worker threads in the TBB worker threads pool.

- +
- - - - - -
- + - - + +
virtual void tbb::internal::task_scheduler_observer_v3::on_scheduler_entry void __TBB_EXPORTED_METHOD tbb::task_scheduler_init::initialize (bool )int number_of_threads = automatic)
-
-inlinevirtual
-

Entry notification.

-

Invoked from inside observe(true) call and whenever a worker enters the arena this observer is associated with. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task.

-

Obsolete semantics. For global observers it is called by a thread before the first steal since observation became enabled.

+

Ensure that scheduler exists for this thread.

+

A value of -1 lets TBB decide on the number of threads, which is usually maximal hardware concurrency for this process, that is the number of logical CPUs on the machine (possibly limited by the processor affinity mask of this process (Windows) or of this thread (Linux, FreeBSD). It is preferable option for production code because it helps to avoid nasty surprises when several TBB based components run side-by-side or in a nested fashion inside the same process.

+

The number_of_threads is ignored if any other task_scheduler_inits currently exist. A thread may construct multiple task_scheduler_inits. Doing so does no harm because the underlying scheduler is reference counted.

- +
- - - - - -
- + - - + + + + + + + + + + + +
virtual void tbb::internal::task_scheduler_observer_v3::on_scheduler_exit void __TBB_EXPORTED_METHOD tbb::task_scheduler_init::initialize (bool )int number_of_threads,
stack_size_type thread_stack_size 
)
-
-inlinevirtual
-

Exit notification.

-

Invoked from inside observe(false) call and whenever a worker leaves the arena this observer is associated with.

-

Obsolete semantics. For global observers it is called by a thread before the first steal since observation became enabled.

+

The overloaded method with stack size parameter.

+

Overloading is necessary to preserve ABI compatibility


The documentation for this class was generated from the following file:
    -
  • task_scheduler_observer.h
  • +
  • task_scheduler_init.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00191.png b/doc/html/a00191.png index b87088c72d..58550fd5aa 100644 Binary files a/doc/html/a00191.png and b/doc/html/a00191.png differ diff --git a/doc/html/a00192.html b/doc/html/a00192.html index dcdff54f26..e8369f773d 100644 --- a/doc/html/a00192.html +++ b/doc/html/a00192.html @@ -4,7 +4,7 @@ -tbb::tbb_allocator< T > Class Template Reference +tbb::interface6::task_scheduler_observer Class Reference @@ -33,125 +33,234 @@
-
tbb::tbb_allocator< T > Class Template Reference
+
tbb::interface6::task_scheduler_observer Class Reference
- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. - More...

- -

#include <tbb_allocator.h>

+
+Inheritance diagram for tbb::interface6::task_scheduler_observer:
+
+
+ + +tbb::internal::task_scheduler_observer_v3 + +
- - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - - - + +

Public Types

enum  malloc_type { scalable, -standard +
enum  { keep_awake = false, +allow_sleep = true }
 Specifies current allocator.
 
-typedef
-internal::allocator_type< T >
-::value_type 
value_type
 
-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
 
 Return commands for may_sleep()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

tbb_allocator (const tbb_allocator &) throw ()
 
-template<typename U >
 tbb_allocator (const tbb_allocator< U > &) throw ()
 
-pointer address (reference x) const
 
-const_pointer address (const_reference x) const
 
-pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
-void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
-size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
-template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
-void construct (pointer p, value_type &&value)
 
-void construct (pointer p, const value_type &value)
 
-void destroy (pointer p)
 Destroy value at location pointed to by p.
 
 task_scheduler_observer (bool local=false)
 Construct local or global observer in inactive state (observation disabled). More...
 
 task_scheduler_observer (task_arena &a)
 Construct local observer for a given arena in inactive state (observation disabled). More...
 
virtual ~task_scheduler_observer ()
 
void observe (bool state=true)
 Enable or disable observation. More...
 
virtual bool may_sleep ()
 The callback can be invoked by a worker thread before it goes to sleep. More...
 
- Public Member Functions inherited from tbb::internal::task_scheduler_observer_v3
void __TBB_EXPORTED_METHOD observe (bool state=true)
 Enable or disable observation. More...
 
+bool is_observing () const
 Returns true if observation is enabled, false otherwise.
 
task_scheduler_observer_v3 ()
 Construct observer with observation disabled.
 
virtual void on_scheduler_entry (bool)
 Entry notification. More...
 
virtual void on_scheduler_exit (bool)
 Exit notification. More...
 
+virtual ~task_scheduler_observer_v3 ()
 Destructor automatically switches observation off if it is enabled.
 
- - - - + + + + + + + +

-Static Public Member Functions

-static malloc_type allocator_type ()
 Returns current allocator.
 

+Friends

+class internal::task_scheduler_observer_v3
 
+class internal::observer_proxy
 
+class internal::observer_list
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + +
+ + + + + + + + +
tbb::interface6::task_scheduler_observer::task_scheduler_observer (bool local = false)
+
+inline
-

Detailed Description

-

template<typename T>
-class tbb::tbb_allocator< T >

+
+ +

Construct local or global observer in inactive state (observation disabled).

+

For a local observer entry/exit notifications are invoked whenever a worker thread joins/leaves the arena of the observer's owner thread. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task. TODO: Obsolete. Global observer semantics is obsolete as it violates master thread isolation guarantees and is not composable. Thus the current default behavior of the constructor is obsolete too and will be changed in one of the future versions of the library.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
tbb::interface6::task_scheduler_observer::task_scheduler_observer (task_arena & a)
+
+inline
+
+ +

Construct local observer for a given arena in inactive state (observation disabled).

+

entry/exit notifications are invoked whenever a thread joins/leaves arena. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual tbb::interface6::task_scheduler_observer::~task_scheduler_observer ()
+
+inlinevirtual
+
+

Destructor protects instance of the observer from concurrent notification. It is recommended to disable observation before destructor of a derived class starts, otherwise it can lead to concurrent notification callback on partly destroyed object

+ +

References observe().

-

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

-

The class selects the best memory allocation mechanism available from scalable_malloc and standard malloc. The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

-

The documentation for this class was generated from the following file:
    -
  • tbb_allocator.h
  • +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool tbb::interface6::task_scheduler_observer::may_sleep ()
+
+inlinevirtual
+
+ +

The callback can be invoked by a worker thread before it goes to sleep.

+

If it returns false ('keep_awake'), the thread will keep spinning and looking for work. It will not be called for master threads.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void tbb::interface6::task_scheduler_observer::observe (bool state = true)
+
+inline
+
+ +

Enable or disable observation.

+

Warning: concurrent invocations of this method are not safe. Repeated calls with the same state are no-ops.

+ +

References tbb::internal::task_scheduler_observer_v3::observe(), and tbb::relaxed.

+ +

Referenced by ~task_scheduler_observer().

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • task_scheduler_observer.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00192.png b/doc/html/a00192.png new file mode 100644 index 0000000000..37496e9076 Binary files /dev/null and b/doc/html/a00192.png differ diff --git a/doc/html/a00193.html b/doc/html/a00193.html index 6489324ab9..1df7465f06 100644 --- a/doc/html/a00193.html +++ b/doc/html/a00193.html @@ -4,7 +4,7 @@ -tbb::tbb_allocator< void > Class Template Reference +tbb::internal::task_scheduler_observer_v3 Class Reference @@ -33,53 +33,150 @@
-
tbb::tbb_allocator< void > Class Template Reference
+
tbb::internal::task_scheduler_observer_v3 Class Reference
- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. - More...

- -

#include <tbb_allocator.h>

+
+Inheritance diagram for tbb::internal::task_scheduler_observer_v3:
+
+
+ + +tbb::interface6::task_scheduler_observer + +
- - - + + + + + + + + + + + + + + + + + + +

-Classes

struct  rebind
 

+Public Member Functions

void __TBB_EXPORTED_METHOD observe (bool state=true)
 Enable or disable observation. More...
 
+bool is_observing () const
 Returns true if observation is enabled, false otherwise.
 
task_scheduler_observer_v3 ()
 Construct observer with observation disabled.
 
virtual void on_scheduler_entry (bool)
 Entry notification. More...
 
virtual void on_scheduler_exit (bool)
 Exit notification. More...
 
+virtual ~task_scheduler_observer_v3 ()
 Destructor automatically switches observation off if it is enabled.
 
- - - - - - - + + + + + + + +

-Public Types

-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 

+Friends

+class observer_proxy
 
+class observer_list
 
+class interface6::task_scheduler_observer
 
+

Member Function Documentation

+ +
+
+ + + + + + + + +
void __TBB_EXPORTED_METHOD tbb::internal::task_scheduler_observer_v3::observe (bool state = true)
+
+ +

Enable or disable observation.

+

For local observers the method can be used only when the current thread has the task scheduler initialized or is attached to an arena.

+

Repeated calls with the same state are no-ops.

+ +

Referenced by tbb::interface6::task_scheduler_observer::observe(), and ~task_scheduler_observer_v3().

+ +
+
+ +
+
+ + + + +
+ + + + + + + + +
virtual void tbb::internal::task_scheduler_observer_v3::on_scheduler_entry (bool )
+
+inlinevirtual
-

Detailed Description

-

template<>
-class tbb::tbb_allocator< void >

+
-

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

-

The documentation for this class was generated from the following file:
    -
  • tbb_allocator.h
  • +

    Entry notification.

    +

    Invoked from inside observe(true) call and whenever a worker enters the arena this observer is associated with. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task.

    +

    Obsolete semantics. For global observers it is called by a thread before the first steal since observation became enabled.

    + +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual void tbb::internal::task_scheduler_observer_v3::on_scheduler_exit (bool )
+
+inlinevirtual
+
+ +

Exit notification.

+

Invoked from inside observe(false) call and whenever a worker leaves the arena this observer is associated with.

+

Obsolete semantics. For global observers it is called by a thread before the first steal since observation became enabled.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • task_scheduler_observer.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00193.png b/doc/html/a00193.png new file mode 100644 index 0000000000..b87088c72d Binary files /dev/null and b/doc/html/a00193.png differ diff --git a/doc/html/a00194.html b/doc/html/a00194.html index da5d7c2de6..8b15888c04 100644 --- a/doc/html/a00194.html +++ b/doc/html/a00194.html @@ -4,7 +4,7 @@ -tbb::tbb_exception Class Reference +tbb::tbb_allocator< T > Class Template Reference @@ -33,191 +33,125 @@
-
tbb::tbb_exception Class Referenceabstract
+
tbb::tbb_allocator< T > Class Template Reference
-

Interface to be implemented by all exceptions TBB recognizes and propagates across the threads. +

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...

-

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::tbb_exception:
-
-
- - -tbb::captured_exception -tbb::movable_exception< ExceptionData > - -
+

#include <tbb_allocator.h>

+ + + +

+Classes

struct  rebind
 
+ + + + + + + + + + + + + + + + + + +

+Public Types

enum  malloc_type { scalable, +standard + }
 Specifies current allocator.
 
+typedef
+internal::allocator_type< T >
+::value_type 
value_type
 
+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
 
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

virtual tbb_exceptionmove ()=0 throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
virtual void destroy ()=0 throw ()
 Destroys objects created by the move() method. More...
 
virtual void throw_self ()=0
 Throws this exception object. More...
 
-virtual const char * name () const =0 throw ()
 Returns RTTI name of the originally intercepted exception.
 
-virtual const char * what () const =0 throw ()
 Returns the result of originally intercepted exception's what() method.
 
void operator delete (void *p)
 
tbb_allocator (const tbb_allocator &) throw ()
 
+template<typename U >
 tbb_allocator (const tbb_allocator< U > &) throw ()
 
+pointer address (reference x) const
 
+const_pointer address (const_reference x) const
 
+pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
+void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
+size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
+template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
+void construct (pointer p, value_type &&value)
 
+void construct (pointer p, const value_type &value)
 
+void destroy (pointer p)
 Destroy value at location pointed to by p.
 
+ + + +

+Static Public Member Functions

+static malloc_type allocator_type ()
 Returns current allocator.
 

Detailed Description

-

Interface to be implemented by all exceptions TBB recognizes and propagates across the threads.

-

If an unhandled exception of the type derived from tbb::tbb_exception is intercepted by the TBB scheduler in one of the worker threads, it is delivered to and re-thrown in the root thread. The root thread is the thread that has started the outermost algorithm or root task sharing the same task_group_context with the guilty algorithm/task (the one that threw the exception first).

-

Note: when documentation mentions workers with respect to exception handling, masters are implied as well, because they are completely equivalent in this context. Consequently a root thread can be master or worker thread.

-

NOTE: In case of nested algorithms or complex task hierarchies when the nested levels share (explicitly or by means of implicit inheritance) the task group context of the outermost level, the exception may be (re-)thrown multiple times (ultimately - in each worker on each nesting level) before reaching the root thread at the outermost level. IMPORTANT: if you intercept an exception derived from this class on a nested level, you must re-throw it in the catch block by means of the "throw;" operator.

-

TBB provides two implementations of this interface: tbb::captured_exception and template class tbb::movable_exception. See their declarations for more info.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - -
virtual void tbb::tbb_exception::destroy ()
throw (
)
-
-pure virtual
-
- -

Destroys objects created by the move() method.

-

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

- -

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.

+

template<typename T>
+class tbb::tbb_allocator< T >

-
-
- -
-
- - - - - -
- - - - - - - - - - - - - -
virtual tbb_exception* tbb::tbb_exception::move ()
throw (
)
-
-pure virtual
-
- -

Creates and returns pointer to the deep copy of this exception object.

-

Move semantics is allowed.

- -

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void tbb::tbb_exception::operator delete (void * p)
-
-inline
-
-

Operator delete is provided only to allow using existing smart pointers with TBB exception objects obtained as the result of applying move() operation on an exception thrown out of TBB scheduler.

-

When overriding method move() make sure to override operator delete as well if memory is allocated not by TBB's scalable allocator.

- -
-
- -
-
- - - - - -
- - - - - - - -
virtual void tbb::tbb_exception::throw_self ()
-
-pure virtual
-
- -

Throws this exception object.

-

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

- -

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +

    Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

    +

    The class selects the best memory allocation mechanism available from scalable_malloc and standard malloc. The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

    +

The documentation for this class was generated from the following file:
    +
  • tbb_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00195.html b/doc/html/a00195.html index 81165e9026..5bb90fdbd8 100644 --- a/doc/html/a00195.html +++ b/doc/html/a00195.html @@ -4,7 +4,7 @@ -tbb::internal::tbb_exception_ptr Class Reference +tbb::tbb_allocator< void > Class Template Reference @@ -33,82 +33,53 @@
-
tbb::internal::tbb_exception_ptr Class Reference
+
tbb::tbb_allocator< void > Class Template Reference
-

Exception container that preserves the exact copy of the original exception. +

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...

-

#include <tbb_exception.h>

+

#include <tbb_allocator.h>

- - - - - - - + + +

-Public Member Functions

void destroy () throw ()
 Destroys this objects. More...
 
-void throw_self ()
 Throws the contained exception .
 

+Classes

struct  rebind
 
- - - - - - - - + + + + + + +

-Static Public Member Functions

-static tbb_exception_ptrallocate ()
 
-static tbb_exception_ptrallocate (const tbb_exception &tag)
 
-static tbb_exception_ptrallocate (captured_exception &src)
 This overload uses move semantics (i.e. it empties src)
 

+Public Types

+typedef void * pointer
 
+typedef const void * const_pointer
 
+typedef void value_type
 

Detailed Description

-

Exception container that preserves the exact copy of the original exception.

-

This class can be used only when the appropriate runtime support (mandated by C++0x) is present

-

Member Function Documentation

- -
-
- - - - - - - - - - - - - -
void tbb::internal::tbb_exception_ptr::destroy ()
throw (
)
-
+

template<>
+class tbb::tbb_allocator< void >

-

Destroys this objects.

-

Note that objects of this type can be created only by the allocate() method.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +

    Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

    +

The documentation for this class was generated from the following file:
    +
  • tbb_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00196.html b/doc/html/a00196.html index 82bacc0faa..4eddf9c96f 100644 --- a/doc/html/a00196.html +++ b/doc/html/a00196.html @@ -4,7 +4,7 @@ -tbb::internal::tbb_thread_v3 Class Reference +tbb::tbb_exception Class Reference @@ -33,117 +33,63 @@
-
tbb::internal::tbb_thread_v3 Class Reference
+
tbb::tbb_exception Class Referenceabstract
-

Versioned thread class. +

Interface to be implemented by all exceptions TBB recognizes and propagates across the threads. More...

-

#include <tbb_thread.h>

+

#include <tbb_exception.h>

+
+Inheritance diagram for tbb::tbb_exception:
+
+
+ + +tbb::captured_exception +tbb::movable_exception< ExceptionData > + +
- - - -

-Classes

class  id
 
- - - - - -

-Public Types

-typedef HANDLE native_handle_type
 
-typedef pthread_t native_handle_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

tbb_thread_v3 (const tbb_thread_v3 &)
 
tbb_thread_v3 () __TBB_NOEXCEPT(true)
 Constructs a thread object that does not represent a thread of execution.
 
-template<class F >
 tbb_thread_v3 (F f)
 Constructs an object and executes f() in a new thread.
 
-template<class F , class X >
 tbb_thread_v3 (F f, X x)
 Constructs an object and executes f(x) in a new thread.
 
-template<class F , class X , class Y >
 tbb_thread_v3 (F f, X x, Y y)
 Constructs an object and executes f(x,y) in a new thread.
 
-tbb_thread_v3operator= (tbb_thread_v3 &x)
 
-void swap (tbb_thread_v3 &t) __TBB_NOEXCEPT(true)
 
-bool joinable () const __TBB_NOEXCEPT(true)
 
-void __TBB_EXPORTED_METHOD join ()
 The completion of the thread represented by *this happens before join() returns.
 
-void __TBB_EXPORTED_METHOD detach ()
 When detach() returns, *this no longer represents the possibly continuing thread of execution.
 
-id get_id () const __TBB_NOEXCEPT(true)
 
-native_handle_type native_handle ()
 
- - - - -

-Static Public Member Functions

static unsigned __TBB_EXPORTED_FUNC hardware_concurrency () __TBB_NOEXCEPT(true)
 The number of hardware thread contexts. More...
 
- - - -

-Public Attributes

-tbb_thread_v3(tbb_thread_v3
-&&x) __TBB_NOEXCEPT(true)
-tbb_thread_v3
operator= (tbb_thread_v3 &&x) __TBB_NOEXCEPT(true)
 
- - - - - + + + + + + + + + + + + + + + + +

-Friends

-void __TBB_EXPORTED_FUNC move_v3 (tbb_thread_v3 &t1, tbb_thread_v3 &t2)
 
-void tbb::swap (tbb_thread_v3 &t1, tbb_thread_v3 &t2) __TBB_NOEXCEPT(true)
 
virtual tbb_exceptionmove ()=0 throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
virtual void destroy ()=0 throw ()
 Destroys objects created by the move() method. More...
 
virtual void throw_self ()=0
 Throws this exception object. More...
 
+virtual const char * name () const =0 throw ()
 Returns RTTI name of the originally intercepted exception.
 
+virtual const char * what () const =0 throw ()
 Returns the result of originally intercepted exception's what() method.
 
void operator delete (void *p)
 

Detailed Description

-

Versioned thread class.

+

Interface to be implemented by all exceptions TBB recognizes and propagates across the threads.

+

If an unhandled exception of the type derived from tbb::tbb_exception is intercepted by the TBB scheduler in one of the worker threads, it is delivered to and re-thrown in the root thread. The root thread is the thread that has started the outermost algorithm or root task sharing the same task_group_context with the guilty algorithm/task (the one that threw the exception first).

+

Note: when documentation mentions workers with respect to exception handling, masters are implied as well, because they are completely equivalent in this context. Consequently a root thread can be master or worker thread.

+

NOTE: In case of nested algorithms or complex task hierarchies when the nested levels share (explicitly or by means of implicit inheritance) the task group context of the outermost level, the exception may be (re-)thrown multiple times (ultimately - in each worker on each nesting level) before reaching the root thread at the outermost level. IMPORTANT: if you intercept an exception derived from this class on a nested level, you must re-throw it in the catch block by means of the "throw;" operator.

+

TBB provides two implementations of this interface: tbb::captured_exception and template class tbb::movable_exception. See their declarations for more info.

Member Function Documentation

- +
@@ -151,7 +97,101 @@ + + +
- + + + + + + + + + + + +
static unsigned __TBB_EXPORTED_FUNC tbb::internal::tbb_thread_v3::hardware_concurrency virtual void tbb::tbb_exception::destroy ()
throw (
)
+
+pure virtual
+
+ +

Destroys objects created by the move() method.

+

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

+ +

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + +
virtual tbb_exception* tbb::tbb_exception::move ()
throw (
)
+
+pure virtual
+
+ +

Creates and returns pointer to the deep copy of this exception object.

+

Move semantics is allowed.

+ +

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void tbb::tbb_exception::operator delete (void * p)
+
+inline
+
+

Operator delete is provided only to allow using existing smart pointers with TBB exception objects obtained as the result of applying move() operation on an exception thrown out of TBB scheduler.

+

When overriding method move() make sure to override operator delete as well if memory is allocated not by TBB's scalable allocator.

+ +
+
+ +
+
+ + + +pure virtual
+ + + @@ -159,24 +199,25 @@
virtual void tbb::tbb_exception::throw_self ( )
-static
-

The number of hardware thread contexts.

-

Before TBB 3.0 U4 this methods returned the number of logical CPU in the system. Currently on Windows, Linux and FreeBSD it returns the number of logical CPUs available to the current process in accordance with its affinity mask.

-

NOTE: The return value of this method never changes after its first invocation. This means that changes in the process affinity mask that took place after this method was first invoked will not affect the number of worker threads in the TBB worker threads pool.

+

Throws this exception object.

+

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

+ +

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.


The documentation for this class was generated from the following file:
    -
  • tbb_thread.h
  • +
  • tbb_exception.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00194.png b/doc/html/a00196.png similarity index 100% rename from doc/html/a00194.png rename to doc/html/a00196.png diff --git a/doc/html/a00197.html b/doc/html/a00197.html index 88d70c5e7f..0312cddbe6 100644 --- a/doc/html/a00197.html +++ b/doc/html/a00197.html @@ -4,7 +4,7 @@ -tbb::thread_bound_filter Class Reference +tbb::internal::tbb_exception_ptr Class Reference @@ -33,125 +33,82 @@
-
tbb::thread_bound_filter Class Reference
+
tbb::internal::tbb_exception_ptr Class Reference
-

A stage in a pipeline served by a user thread. +

Exception container that preserves the exact copy of the original exception. More...

-

#include <pipeline.h>

-
-Inheritance diagram for tbb::thread_bound_filter:
-
-
- - -tbb::filter - -
+

#include <tbb_exception.h>

- - - -

-Public Types

enum  result_type { success, -item_not_available, -end_of_stream - }
 
- - - - - - -

Public Member Functions

result_type __TBB_EXPORTED_METHOD try_process_item ()
 If a data item is available, invoke operator() on that item. More...
 
result_type __TBB_EXPORTED_METHOD process_item ()
 Wait until a data item becomes available, and invoke operator() on that item. More...
 
- - - + + + + + +

-Protected Member Functions

thread_bound_filter (mode filter_mode)
 
void destroy () throw ()
 Destroys this objects. More...
 
+void throw_self ()
 Throws the contained exception .
 
- - - - - - - - - - - - - - - - - + + + + + + + +

-Additional Inherited Members

- Static Protected Attributes inherited from tbb::filter
-static const unsigned char filter_is_serial = 0x1
 The lowest bit 0 is for parallel vs. serial.
 
static const unsigned char filter_is_out_of_order = 0x1<<4
 4th bit distinguishes ordered vs unordered filters. More...
 
-static const unsigned char filter_is_bound = 0x1<<5
 5th bit distinguishes thread-bound and regular filters.
 
-static const unsigned char filter_may_emit_null = 0x1<<6
 6th bit marks input filters emitting small objects
 
static const unsigned char exact_exception_propagation
 7th bit defines exception propagation mode expected by the application. More...
 

+Static Public Member Functions

+static tbb_exception_ptrallocate ()
 
+static tbb_exception_ptrallocate (const tbb_exception &tag)
 
+static tbb_exception_ptrallocate (captured_exception &src)
 This overload uses move semantics (i.e. it empties src)
 

Detailed Description

-

A stage in a pipeline served by a user thread.

+

Exception container that preserves the exact copy of the original exception.

+

This class can be used only when the appropriate runtime support (mandated by C++0x) is present

Member Function Documentation

- +
- + -
result_type __TBB_EXPORTED_METHOD tbb::thread_bound_filter::process_item void tbb::internal::tbb_exception_ptr::destroy ( )
-
- -

Wait until a data item becomes available, and invoke operator() on that item.

-

This interface is blocking. Returns 'success' if an item was processed. Returns 'end_of_stream' if there are no more items to process. Never returns 'item_not_available', as it blocks until another return condition applies.

- -
-
- -
-
- - - - - + + + +
result_type __TBB_EXPORTED_METHOD tbb::thread_bound_filter::try_process_item ()throw (
)
-

If a data item is available, invoke operator() on that item.

-

This interface is non-blocking. Returns 'success' if an item was processed. Returns 'item_not_available' if no item can be processed now but more may arrive in the future, or if token limit is reached. Returns 'end_of_stream' if there are no more items to process.

+

Destroys this objects.

+

Note that objects of this type can be created only by the allocate() method.


The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • +
  • tbb_exception.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00197.png b/doc/html/a00197.png deleted file mode 100644 index 7eab1d5112..0000000000 Binary files a/doc/html/a00197.png and /dev/null differ diff --git a/doc/html/a00198.html b/doc/html/a00198.html index 1e739519a9..bbf06aeb0f 100644 --- a/doc/html/a00198.html +++ b/doc/html/a00198.html @@ -4,7 +4,7 @@ -tbb::internal::thread_closure_0< F > Struct Template Reference +tbb::internal::tbb_thread_v3 Class Reference @@ -33,61 +33,150 @@
-
tbb::internal::thread_closure_0< F > Struct Template Reference
+
tbb::internal::tbb_thread_v3 Class Reference
-
-Inheritance diagram for tbb::internal::thread_closure_0< F >:
-
-
- - -tbb::internal::thread_closure_base - -
+ +

Versioned thread class. + More...

+ +

#include <tbb_thread.h>

+ + + +

+Classes

class  id
 
+ + + + + +

+Public Types

+typedef HANDLE native_handle_type
 
+typedef pthread_t native_handle_type
 
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

thread_closure_0 (const F &f)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
-void * operator new (size_t size)
 
-void operator delete (void *ptr)
 
tbb_thread_v3 (const tbb_thread_v3 &)
 
tbb_thread_v3 () __TBB_NOEXCEPT(true)
 Constructs a thread object that does not represent a thread of execution.
 
+template<class F >
 tbb_thread_v3 (F f)
 Constructs an object and executes f() in a new thread.
 
+template<class F , class X >
 tbb_thread_v3 (F f, X x)
 Constructs an object and executes f(x) in a new thread.
 
+template<class F , class X , class Y >
 tbb_thread_v3 (F f, X x, Y y)
 Constructs an object and executes f(x,y) in a new thread.
 
+tbb_thread_v3operator= (tbb_thread_v3 &x)
 
+void swap (tbb_thread_v3 &t) __TBB_NOEXCEPT(true)
 
+bool joinable () const __TBB_NOEXCEPT(true)
 
+void __TBB_EXPORTED_METHOD join ()
 The completion of the thread represented by *this happens before join() returns.
 
+void __TBB_EXPORTED_METHOD detach ()
 When detach() returns, *this no longer represents the possibly continuing thread of execution.
 
+id get_id () const __TBB_NOEXCEPT(true)
 
+native_handle_type native_handle ()
 
- - + + +

Static Public Member Functions

-static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 
static unsigned __TBB_EXPORTED_FUNC hardware_concurrency () __TBB_NOEXCEPT(true)
 The number of hardware thread contexts. More...
 
- - + + +

Public Attributes

-F function
 
+tbb_thread_v3(tbb_thread_v3
+&&x) __TBB_NOEXCEPT(true)
+tbb_thread_v3
operator= (tbb_thread_v3 &&x) __TBB_NOEXCEPT(true)
 
+ + + + +

+Friends

+void __TBB_EXPORTED_FUNC move_v3 (tbb_thread_v3 &t1, tbb_thread_v3 &t2)
 
+void tbb::swap (tbb_thread_v3 &t1, tbb_thread_v3 &t2) __TBB_NOEXCEPT(true)
 
-
The documentation for this struct was generated from the following file:
    +

    Detailed Description

    +

    Versioned thread class.

    +

    Member Function Documentation

    + +
    +
    + + + + + +
    + + + + + + + +
    static unsigned __TBB_EXPORTED_FUNC tbb::internal::tbb_thread_v3::hardware_concurrency ()
    +
    +static
    +
    + +

    The number of hardware thread contexts.

    +

    Before TBB 3.0 U4 this methods returned the number of logical CPU in the system. Currently on Windows, Linux and FreeBSD it returns the number of logical CPUs available to the current process in accordance with its affinity mask.

    +

    NOTE: The return value of this method never changes after its first invocation. This means that changes in the process affinity mask that took place after this method was first invoked will not affect the number of worker threads in the TBB worker threads pool.

    + +
    +
    +
    The documentation for this class was generated from the following file:
    • tbb_thread.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00198.png b/doc/html/a00198.png deleted file mode 100644 index ca33e7fe18..0000000000 Binary files a/doc/html/a00198.png and /dev/null differ diff --git a/doc/html/a00199.html b/doc/html/a00199.html index 835424dabf..32c3e6af78 100644 --- a/doc/html/a00199.html +++ b/doc/html/a00199.html @@ -4,7 +4,7 @@ -tbb::internal::thread_closure_1< F, X > Struct Template Reference +tbb::thread_bound_filter Class Reference @@ -33,75 +33,125 @@
-
tbb::internal::thread_closure_1< F, X > Struct Template Reference
+
tbb::thread_bound_filter Class Reference
-

Structure used to pass user function with 1 argument to thread. +

A stage in a pipeline served by a user thread. More...

-

#include <tbb_thread.h>

+

#include <pipeline.h>

-Inheritance diagram for tbb::internal::thread_closure_1< F, X >:
+Inheritance diagram for tbb::thread_bound_filter:
- - -tbb::internal::thread_closure_base + + +tbb::filter
+ + + +

+Public Types

enum  result_type { success, +item_not_available, +end_of_stream + }
 
- - - - - - - + + + + + +

Public Member Functions

thread_closure_1 (const F &f, const X &x)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
-void * operator new (size_t size)
 
-void operator delete (void *ptr)
 
result_type __TBB_EXPORTED_METHOD try_process_item ()
 If a data item is available, invoke operator() on that item. More...
 
result_type __TBB_EXPORTED_METHOD process_item ()
 Wait until a data item becomes available, and invoke operator() on that item. More...
 
- - - - + + +

-Static Public Member Functions

-static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 Routine passed to Windows's _beginthreadex by thread::internal_start() inside tbb.dll.
 

+Protected Member Functions

thread_bound_filter (mode filter_mode)
 
- - - - - + + + + + + + + + + + + + + + + +

-Public Attributes

-F function
 
-X arg1
 

+Additional Inherited Members

- Static Protected Attributes inherited from tbb::filter
+static const unsigned char filter_is_serial = 0x1
 The lowest bit 0 is for parallel vs. serial.
 
static const unsigned char filter_is_out_of_order = 0x1<<4
 4th bit distinguishes ordered vs unordered filters. More...
 
+static const unsigned char filter_is_bound = 0x1<<5
 5th bit distinguishes thread-bound and regular filters.
 
+static const unsigned char filter_may_emit_null = 0x1<<6
 6th bit marks input filters emitting small objects
 
static const unsigned char exact_exception_propagation
 7th bit defines exception propagation mode expected by the application. More...
 

Detailed Description

-

template<class F, class X>
-struct tbb::internal::thread_closure_1< F, X >

+

A stage in a pipeline served by a user thread.

+

Member Function Documentation

+ +
+
+ + + + + + + +
result_type __TBB_EXPORTED_METHOD tbb::thread_bound_filter::process_item ()
+
+ +

Wait until a data item becomes available, and invoke operator() on that item.

+

This interface is blocking. Returns 'success' if an item was processed. Returns 'end_of_stream' if there are no more items to process. Never returns 'item_not_available', as it blocks until another return condition applies.

+ +
+
+ +
+
+ + + + + + + +
result_type __TBB_EXPORTED_METHOD tbb::thread_bound_filter::try_process_item ()
+
+ +

If a data item is available, invoke operator() on that item.

+

This interface is non-blocking. Returns 'success' if an item was processed. Returns 'item_not_available' if no item can be processed now but more may arrive in the future, or if token limit is reached. Returns 'end_of_stream' if there are no more items to process.

-

Structure used to pass user function with 1 argument to thread.

-

The documentation for this struct was generated from the following file:
    -
  • tbb_thread.h
  • +
+
+
The documentation for this class was generated from the following file:
    +
  • pipeline.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00199.png b/doc/html/a00199.png index 961925b534..7eab1d5112 100644 Binary files a/doc/html/a00199.png and b/doc/html/a00199.png differ diff --git a/doc/html/a00200.html b/doc/html/a00200.html index 1882a166ed..d9ea586906 100644 --- a/doc/html/a00200.html +++ b/doc/html/a00200.html @@ -4,7 +4,7 @@ -tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference +tbb::internal::thread_closure_0< F > Struct Template Reference @@ -33,7 +33,7 @@ +List of all members
-
tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference
+
tbb::internal::thread_closure_0< F > Struct Template Reference
-Inheritance diagram for tbb::internal::thread_closure_2< F, X, Y >:
+Inheritance diagram for tbb::internal::thread_closure_0< F >:
- - -tbb::internal::thread_closure_base + + +tbb::internal::thread_closure_base
- - - - + + + - - + - +

Public Member Functions

thread_closure_2 (const F &f, const X &x, const Y &y)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
+
thread_closure_0 (const F &f)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
void * operator new (size_t size)
 
+
 
void operator delete (void *ptr)
 
 
- - - + +

Static Public Member Functions

-static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 Routine passed to Windows's _beginthreadex by thread::internal_start() inside tbb.dll.
 
+static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 
- - - - - - +

Public Attributes

+
function
 
-X arg1
 
-Y arg2
 
 

The documentation for this struct was generated from the following file:
  • tbb_thread.h
  • @@ -94,7 +87,7 @@

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00200.png b/doc/html/a00200.png index aa52099a9d..ca33e7fe18 100644 Binary files a/doc/html/a00200.png and b/doc/html/a00200.png differ diff --git a/doc/html/a00201.html b/doc/html/a00201.html index 84a6e0d0e5..0de13ba7e5 100644 --- a/doc/html/a00201.html +++ b/doc/html/a00201.html @@ -4,7 +4,7 @@ -tbb::internal::thread_closure_base Struct Reference +tbb::internal::thread_closure_1< F, X > Struct Template Reference @@ -33,45 +33,75 @@
-
tbb::internal::thread_closure_base Struct Reference
+
tbb::internal::thread_closure_1< F, X > Struct Template Reference
+ +

Structure used to pass user function with 1 argument to thread. + More...

+ +

#include <tbb_thread.h>

-Inheritance diagram for tbb::internal::thread_closure_base:
+Inheritance diagram for tbb::internal::thread_closure_1< F, X >:
- - -tbb::internal::thread_closure_0< F > -tbb::internal::thread_closure_1< F, X > -tbb::internal::thread_closure_2< F, X, Y > + + +tbb::internal::thread_closure_base
- + + + - - + - + +

Public Member Functions

+
thread_closure_1 (const F &f, const X &x)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
void * operator new (size_t size)
 
+
 
void operator delete (void *ptr)
 
 
+ + + + +

+Static Public Member Functions

+static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 Routine passed to Windows's _beginthreadex by thread::internal_start() inside tbb.dll.
 
+ + + + +

+Public Attributes

+F function
 
+X arg1
 
-
The documentation for this struct was generated from the following file:
    +

    Detailed Description

    +

    template<class F, class X>
    +struct tbb::internal::thread_closure_1< F, X >

    + +

    Structure used to pass user function with 1 argument to thread.

    +

    The documentation for this struct was generated from the following file:
    • tbb_thread.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00201.png b/doc/html/a00201.png index 0324577e72..961925b534 100644 Binary files a/doc/html/a00201.png and b/doc/html/a00201.png differ diff --git a/doc/html/a00202.html b/doc/html/a00202.html index c0d657ae76..6d91058eb5 100644 --- a/doc/html/a00202.html +++ b/doc/html/a00202.html @@ -4,7 +4,7 @@ -tbb::tick_count Class Reference +tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference @@ -33,66 +33,68 @@
-
tbb::tick_count Class Reference
+
tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference
- -

Absolute timestamp. - More...

- -

#include <tick_count.h>

+
+Inheritance diagram for tbb::internal::thread_closure_2< F, X, Y >:
+
+
+ + +tbb::internal::thread_closure_base + +
- - - - -

-Classes

class  interval_t
 Relative time interval. More...
 
- - - + + + + + + +

Public Member Functions

tick_count ()
 Construct an absolute timestamp initialized to zero.
 
thread_closure_2 (const F &f, const X &x, const Y &y)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
+void * operator new (size_t size)
 
+void operator delete (void *ptr)
 
- - - - - - + + +

Static Public Member Functions

-static tick_count now ()
 Return current time.
 
-static double resolution ()
 Return the resolution of the clock in seconds per tick.
 
+static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 Routine passed to Windows's _beginthreadex by thread::internal_start() inside tbb.dll.
 
- - - - + + + + + + +

-Friends

-interval_t operator- (const tick_count &t1, const tick_count &t0)
 Subtract two timestamps to get the time interval between.
 

+Public Attributes

+F function
 
+X arg1
 
+Y arg2
 
-

Detailed Description

-

Absolute timestamp.

-

The documentation for this class was generated from the following file:
    -
  • tick_count.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • tbb_thread.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00202.png b/doc/html/a00202.png new file mode 100644 index 0000000000..aa52099a9d Binary files /dev/null and b/doc/html/a00202.png differ diff --git a/doc/html/a00203.html b/doc/html/a00203.html index bee08d8bba..347ac2f102 100644 --- a/doc/html/a00203.html +++ b/doc/html/a00203.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor Struct Reference +tbb::internal::thread_closure_base Struct Reference @@ -33,56 +33,45 @@
-
tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor Struct Reference
+
tbb::internal::thread_closure_base Struct Reference
+
+Inheritance diagram for tbb::internal::thread_closure_base:
+
+
+ + +tbb::internal::thread_closure_0< F > +tbb::internal::thread_closure_1< F, X > +tbb::internal::thread_closure_2< F, X, Y > + +
- - - -

-Public Types

-typedef
-internal::multifunction_output
-< Output > 
output_port_type
 
- - - - -

Public Member Functions

try_put_functor (output_port_type &p, const Output &v)
 
-void operator() ()
 
- - - - - - - + + + +

-Public Attributes

-output_port_type * port
 
-const Output * value
 
-bool result
 
+void * operator new (size_t size)
 
+void operator delete (void *ptr)
 

The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00203.png b/doc/html/a00203.png new file mode 100644 index 0000000000..0324577e72 Binary files /dev/null and b/doc/html/a00203.png differ diff --git a/doc/html/a00204.html b/doc/html/a00204.html index 78601c2cc2..3ff38252c1 100644 --- a/doc/html/a00204.html +++ b/doc/html/a00204.html @@ -4,7 +4,7 @@ -tbb::interface5::internal::use_element_copy_constructor< T, C > Struct Template Reference +tbb::tick_count Class Reference @@ -33,34 +33,66 @@
-
tbb::interface5::internal::use_element_copy_constructor< T, C > Struct Template Reference
+
tbb::tick_count Class Reference
+ +

Absolute timestamp. + More...

+ +

#include <tick_count.h>

- - - - - + + + + +

-Public Types

-typedef tbb::internal::true_type type
 
-typedef tbb::internal::true_type type
 

+Classes

class  interval_t
 Relative time interval. More...
 
+ + + + +

+Public Member Functions

tick_count ()
 Construct an absolute timestamp initialized to zero.
 
+ + + + + + + +

+Static Public Member Functions

+static tick_count now ()
 Return current time.
 
+static double resolution ()
 Return the resolution of the clock in seconds per tick.
 
+ + + +

+Friends

+interval_t operator- (const tick_count &t1, const tick_count &t0)
 Subtract two timestamps to get the time interval between.
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_priority_queue.h
  • +

    Detailed Description

    +

    Absolute timestamp.

    +

    The documentation for this class was generated from the following file:
      +
    • tick_count.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00205.html b/doc/html/a00205.html index 00d3f894f0..fa6adf7512 100644 --- a/doc/html/a00205.html +++ b/doc/html/a00205.html @@ -4,7 +4,7 @@ -tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference +tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor Struct Reference @@ -33,31 +33,56 @@
-
tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference
+
tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor Struct Reference
- - + + +

Public Types

-typedef tbb::internal::false_type type
 
+typedef
+internal::multifunction_output
+< Output > 
output_port_type
 
+ + + + + +

+Public Member Functions

try_put_functor (output_port_type &p, const Output &v)
 
+void operator() ()
 
+ + + + + + +

+Public Attributes

+output_port_type * port
 
+const Output * value
 
+bool result
 

The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00206.html b/doc/html/a00206.html index 543d16b111..43179ef75b 100644 --- a/doc/html/a00206.html +++ b/doc/html/a00206.html @@ -4,7 +4,7 @@ -tbb::user_abort Class Reference +tbb::interface5::internal::use_element_copy_constructor< T, C > Struct Template Reference @@ -33,46 +33,34 @@
-
tbb::user_abort Class Reference
+
tbb::interface5::internal::use_element_copy_constructor< T, C > Struct Template Reference
- -

Exception for user-initiated abort. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::user_abort:
-
-
- - - -
- - - + + + + +

-Public Member Functions

-const char * what () const throw ()
 

+Public Types

+typedef tbb::internal::true_type type
 
+typedef tbb::internal::true_type type
 
-

Detailed Description

-

Exception for user-initiated abort.

-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • concurrent_priority_queue.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00207.html b/doc/html/a00207.html index e77c21fc0b..0af44b3451 100644 --- a/doc/html/a00207.html +++ b/doc/html/a00207.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Class Reference +tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference @@ -33,56 +33,31 @@
-
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Class Reference
+
tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference
-
-Inheritance diagram for tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare:
-
-
- - - -
- - - - - -

-Public Member Functions

-bool operator() (const value_type &left, const value_type &right) const
 
value_compare (const hash_compare &comparator)
 
- - - -

-Protected Attributes

-hash_compare my_hash_compare
 
- - - + + +

-Friends

-class concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >
 

+Public Types

+typedef tbb::internal::false_type type
 
-
The documentation for this class was generated from the following file:
    -
  • concurrent_unordered_map.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • concurrent_priority_queue.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00207.png b/doc/html/a00207.png deleted file mode 100644 index d6754637d9..0000000000 Binary files a/doc/html/a00207.png and /dev/null differ diff --git a/doc/html/a00208.html b/doc/html/a00208.html index 550e488e8a..c4a29084d7 100644 --- a/doc/html/a00208.html +++ b/doc/html/a00208.html @@ -4,7 +4,7 @@ -tbb::vector_iterator< Container, Value > Class Template Reference +tbb::user_abort Class Reference @@ -33,21 +33,46 @@
+
-
tbb::vector_iterator< Container, Value > Class Template Reference
+
tbb::user_abort Class Reference
-
The documentation for this class was generated from the following file:
    -
  • concurrent_vector.h
  • + +

    Exception for user-initiated abort. + More...

    + +

    #include <tbb_exception.h>

    +
    +Inheritance diagram for tbb::user_abort:
    +
    +
    + + + +
    + + + + +

    +Public Member Functions

    +const char * what () const throw ()
     
    +

    Detailed Description

    +

    Exception for user-initiated abort.

    +

    The documentation for this class was generated from the following file:
      +
    • tbb_exception.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00206.png b/doc/html/a00208.png similarity index 100% rename from doc/html/a00206.png rename to doc/html/a00208.png diff --git a/doc/html/a00209.html b/doc/html/a00209.html index 46736233e6..9dffd3dfaf 100644 --- a/doc/html/a00209.html +++ b/doc/html/a00209.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::write_once_node< T > Class Template Reference +tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Class Reference @@ -33,283 +33,56 @@
-
tbb::flow::interface8::write_once_node< T > Class Template Reference
+
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Class Reference
-Inheritance diagram for tbb::flow::interface8::write_once_node< T >:
+Inheritance diagram for tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare:
- - -tbb::flow::interface8::overwrite_node< T > -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::overwrite_node< T >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef receiver< input_type >
-::built_predecessors_type 
built_predecessors_type
 
-typedef sender< output_type >
-::built_successors_type 
built_successors_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + +

Public Member Functions

write_once_node (graph &g)
 Constructor.
 
write_once_node (const write_once_node &src)
 Copy constructor: call base class copy constructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::overwrite_node< T >
overwrite_node (graph &g)
 
overwrite_node (const overwrite_node &src)
 
-bool register_successor (successor_type &s)
 Add a new successor to this node.
 
-bool remove_successor (successor_type &s)
 Removes a successor from this node.
 
-built_predecessors_typebuilt_predecessors ()
 
-built_successors_typebuilt_successors ()
 
-void internal_add_built_successor (successor_type &s)
 
-void internal_delete_built_successor (successor_type &s)
 
-size_t successor_count ()
 
-void copy_successors (successor_list_type &v)
 
-void internal_add_built_predecessor (predecessor_type &p)
 
-void internal_delete_built_predecessor (predecessor_type &p)
 
-size_t predecessor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void extract ()
 
-bool try_get (input_type &v)
 Request an item from the sender.
 
-bool is_valid ()
 
-void clear ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
+bool operator() (const value_type &left, const value_type &right) const
 
value_compare (const hash_compare &comparator)
 
- - - - - - - - - - - + + +

-Protected Member Functions

-task * try_put_task (const T &v)
 
- Protected Member Functions inherited from tbb::flow::interface8::overwrite_node< T >
-void reset_receiver (reset_flags)
 
-void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual bool is_continue_receiver ()
 

+Protected Attributes

+hash_compare my_hash_compare
 
- - - - - - - - - -

Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - - - - - + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::overwrite_node< T >
-spin_mutex my_mutex
 
-internal::broadcast_cache
-< input_type, null_rw_mutex
my_successors
 
-internal::edge_container
-< predecessor_type
my_built_predecessors
 
-input_type my_buffer
 
-bool my_buffer_is_valid
 
+class concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >
 

The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00209.png b/doc/html/a00209.png index 6919a098df..d6754637d9 100644 Binary files a/doc/html/a00209.png and b/doc/html/a00209.png differ diff --git a/doc/html/a00210.html b/doc/html/a00210.html index 6d0bc55223..b532253862 100644 --- a/doc/html/a00210.html +++ b/doc/html/a00210.html @@ -4,7 +4,7 @@ -tbb::zero_allocator< T, Allocator > Class Template Reference +tbb::vector_iterator< Container, Value > Class Template Reference @@ -33,98 +33,21 @@
-
-
tbb::zero_allocator< T, Allocator > Class Template Reference
+
tbb::vector_iterator< Container, Value > Class Template Reference
- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. - More...

- -

#include <tbb_allocator.h>

-
-Inheritance diagram for tbb::zero_allocator< T, Allocator >:
-
-
- - - -
- - - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - - - -

-Public Types

-typedef Allocator< T > base_allocator_type
 
-typedef
-base_allocator_type::value_type 
value_type
 
-typedef
-base_allocator_type::pointer 
pointer
 
-typedef
-base_allocator_type::const_pointer 
const_pointer
 
-typedef
-base_allocator_type::reference 
reference
 
-typedef
-base_allocator_type::const_reference 
const_reference
 
-typedef
-base_allocator_type::size_type 
size_type
 
-typedef
-base_allocator_type::difference_type 
difference_type
 
- - - - - - - - -

-Public Member Functions

zero_allocator (const zero_allocator &a) throw ()
 
-template<typename U >
 zero_allocator (const zero_allocator< U > &a) throw ()
 
-pointer allocate (const size_type n, const void *hint=0)
 
-

Detailed Description

-

template<typename T, template< typename X > class Allocator = tbb_allocator>
-class tbb::zero_allocator< T, Allocator >

- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

-

The class is an adapter over an actual allocator that fills the allocation using memset function with template argument C as the value. The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

-

The documentation for this class was generated from the following file:
    -
  • tbb_allocator.h
  • +
    The documentation for this class was generated from the following file:
      +
    • concurrent_vector.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00211.html b/doc/html/a00211.html index 81a821e2f0..23acfdd9c2 100644 --- a/doc/html/a00211.html +++ b/doc/html/a00211.html @@ -4,7 +4,7 @@ -tbb::zero_allocator< void, Allocator > Class Template Reference +tbb::flow::interface8::write_once_node< T > Class Template Reference @@ -33,67 +33,283 @@
-
tbb::zero_allocator< void, Allocator > Class Template Reference
+
tbb::flow::interface8::write_once_node< T > Class Template Reference
- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. - More...

- -

#include <tbb_allocator.h>

-Inheritance diagram for tbb::zero_allocator< void, Allocator >:
+Inheritance diagram for tbb::flow::interface8::write_once_node< T >:
- - + + +tbb::flow::interface8::overwrite_node< T > +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T >
- - - -

-Classes

struct  rebind
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + - - + + + - +built_successors_type::edge_list_type  + +

Public Types

-typedef Allocator< void > base_allocator_type
 
+
+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::overwrite_node< T >
+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef receiver< input_type >
+::built_predecessors_type 
built_predecessors_type
 
+typedef sender< output_type >
+::built_successors_type 
built_successors_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
typedef
-base_allocator_type::value_type 
value_type
 
+built_predecessors_type::edge_list_type predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
typedef
-base_allocator_type::pointer 
pointer
 
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
typedef
-base_allocator_type::const_pointer 
const_pointer
 
successor_list_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

write_once_node (graph &g)
 Constructor.
 
write_once_node (const write_once_node &src)
 Copy constructor: call base class copy constructor.
 
+void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::overwrite_node< T >
overwrite_node (graph &g)
 
overwrite_node (const overwrite_node &src)
 
+bool register_successor (successor_type &s)
 Add a new successor to this node.
 
+bool remove_successor (successor_type &s)
 Removes a successor from this node.
 
+built_predecessors_typebuilt_predecessors ()
 
+built_successors_typebuilt_successors ()
 
+void internal_add_built_successor (successor_type &s)
 
+void internal_delete_built_successor (successor_type &s)
 
+size_t successor_count ()
 
+void copy_successors (successor_list_type &v)
 
+void internal_add_built_predecessor (predecessor_type &p)
 
+void internal_delete_built_predecessor (predecessor_type &p)
 
+size_t predecessor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void extract ()
 
+bool try_get (input_type &v)
 Request an item from the sender.
 
+bool is_valid ()
 
+void clear ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
+virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
+virtual bool try_release ()
 Releases the reserved item.
 
+virtual bool try_consume ()
 Consumes the reserved item.
 
+ + + + + + + + + + + +

+Protected Member Functions

+task * try_put_task (const T &v)
 
- Protected Member Functions inherited from tbb::flow::interface8::overwrite_node< T >
+void reset_receiver (reset_flags)
 
+void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual bool is_continue_receiver ()
 
+ + + + + + + + + + +

+Friends

+template<typename R , typename B >
class run_and_put_task
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::overwrite_node< T >
+spin_mutex my_mutex
 
+internal::broadcast_cache
+< input_type, null_rw_mutex
my_successors
 
+internal::edge_container
+< predecessor_type
my_built_predecessors
 
+input_type my_buffer
 
+bool my_buffer_is_valid
 
-

Detailed Description

-

template<template< typename T > class Allocator>
-class tbb::zero_allocator< void, Allocator >

- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

-

The documentation for this class was generated from the following file: