Commit f890d13c authored by Graham Inggs's avatar Graham Inggs

Imported Upstream version 2.2+r009

parent e8febd78
TBB 2.2 Update 1 commercial-aligned release
Changes (w.r.t. TBB 2.2 commercial-aligned release):
- Incorporates all changes from open-source releases below.
- Documentation was updated.
- TBB scheduler auto-initialization now covers all possible use cases.
- concurrent_queue: made argument types of sizeof used in paddings
consistent with those actually used.
- Memory allocator was improved: supported corner case of user's malloc
calling scalable_malloc (non-Windows), corrected processing of
memory allocation requests during tbb memory allocator startup
(Linux).
- Windows malloc replacement has got better support for static objects.
- In pipeline setups that do not allow actual parallelism, execution
by a single thread is guaranteed, idle spinning eliminated, and
performance improved.
- RML refactoring and clean-up.
- New constructor for concurrent_hash_map allows reserving space for
a number of items.
- Operator delete() added to the TBB exception classes.
- Lambda support was improved in parallel_reduce.
- gcc 4.3 warnings were fixed for concurrent_queue.
- Fixed possible initialization deadlock in modules using TBB entities
during construction of global static objects.
- Copy constructor in concurrent_hash_map was fixed.
- Fixed a couple of rare crashes in the scheduler possible before
in very specific use cases.
- Fixed a rare crash in the TBB allocator running out of memory.
- New tests were implemented, including test_lambda.cpp that checks
support for lambda expressions.
- A few other small changes in code, tests, and documentation.
------------------------------------------------------------------------
20090809 open-source release
Changes (w.r.t. TBB 2.2 commercial-aligned release):
- Fixed known exception safety issues in concurrent_vector.
- Better concurrency of simultaneous grow requests in concurrent_vector.
- TBB allocator further improves performance of large object allocation.
- Problem with source of text relocations was fixed on Linux
- Fixed bugs related to malloc replacement under Windows
- A few other small changes in code and documentation.
------------------------------------------------------------------------
TBB 2.2 commercial-aligned release
Changes (w.r.t. TBB 2.1 U4 commercial-aligned release):
......@@ -7,6 +53,8 @@ Changes (w.r.t. TBB 2.1 U4 commercial-aligned release):
to ia64.
- Major Interface version changed from 3 to 4. Deprecated interfaces
might be removed in future releases.
- Parallel algorithms that use partitioners have switched to use
the auto_partitioner by default.
- Improved memory allocator performance for allocations bigger than 8K.
- Added new thread-bound filters functionality for pipeline.
- New implementation of concurrent_hash_map that improves performance
......
......@@ -34,7 +34,6 @@ PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -Wall
DYLIB_KEY = -shared
#LIBDL = -ldl
TBB_NOSTRICT = 1
......
......@@ -71,6 +71,7 @@ LIBS += $(LIBDL)
INCLUDES += $(INCLUDE_KEY)$(RML_ROOT)/include $(INCLUDE_KEY).
T_INCLUDES = $(INCLUDES) $(INCLUDE_KEY)$(tbb_root)/src/test $(INCLUDE_KEY)$(RML_SERVER_ROOT)
WARNING_SUPPRESS += $(RML_WARNING_SUPPRESS)
# Suppress superfluous warnings for RML compilation
R_CPLUS_FLAGS = $(subst DO_ITT_NOTIFY,DO_ITT_NOTIFY=0,$(CPLUS_FLAGS_NOSTRICT)) $(WARNING_SUPPRESS) \
......@@ -81,7 +82,7 @@ R_CPLUS_FLAGS = $(subst DO_ITT_NOTIFY,DO_ITT_NOTIFY=0,$(CPLUS_FLAGS_NOSTRICT))
tbb_misc_rml.$(OBJ): version_string.tmp
RML_TEST.OBJ = test_hunk.$(OBJ) test_job_automaton.$(OBJ) test_ring.$(OBJ) test_thread_monitor.$(OBJ) test_rml_tbb.$(OBJ) test_rml_omp.$(OBJ) test_rml_mixed.$(OBJ)
RML_TEST.OBJ = test_job_automaton.$(OBJ) test_thread_monitor.$(OBJ) test_rml_tbb.$(OBJ) test_rml_omp.$(OBJ) test_rml_mixed.$(OBJ)
$(RML_TBB_DEP): %_rml.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(R_CPLUS_FLAGS) $(PIC_KEY) $(INCLUDES) $<
......@@ -98,7 +99,7 @@ $(RML.DLL): rml.def
endif
$(RML.DLL): BUILDING_LIBRARY = $(RML.DLL)
$(RML.DLL): $(RML_SERVER.OBJ) $(RML.RES) $(RML_NO_VERSION.DLL) $(RML_TBB_DEP) $(RML_ASM.OBJ)
$(RML.DLL): $(RML_TBB_DEP) $(RML_SERVER.OBJ) $(RML.RES) $(RML_NO_VERSION.DLL) $(RML_ASM.OBJ)
$(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(RML.DLL) $(RML_SERVER.OBJ) $(RML_TBB_DEP) $(RML_ASM.OBJ) $(RML.RES) $(LIB_LINK_LIBS) $(LIB_LINK_FLAGS)
ifneq (,$(RML_NO_VERSION.DLL))
......@@ -119,7 +120,7 @@ rml: $(RML.DLL) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ)
add_debug=$(basename $(1))_debug$(suffix $(1))
cross_suffix=$(if $(crosstest),$(if $(DEBUG_SUFFIX),$(subst _debug,,$(1)),$(call add_debug,$(1))),$(1))
RML_TESTS = test_hunk.exe test_job_automaton.exe test_ring.exe test_thread_monitor.exe test_rml_tbb.exe test_rml_omp.exe test_rml_mixed.exe test_rml_omp_c_linkage.exe
RML_TESTS = test_job_automaton.exe test_thread_monitor.exe test_rml_tbb.exe test_rml_omp.exe test_rml_mixed.exe test_rml_omp_c_linkage.exe
test_rml_tbb.exe: test_rml_tbb.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(TBB_DEP_RML_TEST)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_tbb.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(TBB_DEP_RML_TEST) $(LIBS) $(LINK_FLAGS)
......@@ -141,9 +142,7 @@ test_%.exe: test_%.$(OBJ) $(TBB_DEP_NON_RML_TEST)
### run_cmd is usually empty
rml_test: $(call cross_suffix,$(RML.DLL)) $(RML_TESTS)
$(run_cmd) ./test_hunk.exe
$(run_cmd) ./test_job_automaton.exe
$(run_cmd) ./test_ring.exe
$(run_cmd) ./test_thread_monitor.exe
$(run_cmd) ./test_rml_tbb.exe
$(run_cmd) ./test_rml_omp.exe
......
......@@ -42,7 +42,7 @@ default_tbb: $(TBB.DLL)
.PHONY: default_tbb tbbvars clean
.PRECIOUS: %.$(OBJ)
VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/old
VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/old $(tbb_root)/src/rml/client
CPLUS_FLAGS += $(PIC_KEY) $(DEFINE_KEY)__TBB_BUILD=1
......@@ -75,7 +75,9 @@ TBB_CPLUS.OBJ = concurrent_hash_map.$(OBJ) \
mutex.$(OBJ) \
recursive_mutex.$(OBJ) \
tbb_thread.$(OBJ) \
itt_notify_proxy.$(OBJ)
itt_notify_proxy.$(OBJ) \
private_server.$(OBJ) \
rml_tbb.$(OBJ)
# OLD/Legacy object files for backward binary compatibility
ifeq (,$(findstring $(DEFINE_KEY)TBB_NO_LEGACY,$(CPLUS_FLAGS)))
......@@ -91,11 +93,7 @@ TBB.OBJ = $(TBB_CPLUS.OBJ) $(TBB_CPLUS_OLD.OBJ) $(TBB_ASM.OBJ)
# Suppress superfluous warnings for TBB compilation
WARNING_KEY += $(WARNING_SUPPRESS)
ifneq (,$(RML))
VPATH += $(tbb_root)/src/rml/client
TBB.OBJ += rml_tbb.$(OBJ) private_server.$(OBJ)
CPLUS_FLAGS += $(DEFINE_KEY)__TBB_RML=1 $(INCLUDE_KEY)$(tbb_root)/src/rml/include
endif
CXX_WARN_SUPPRESS = $(RML_WARNING_SUPPRESS)
include $(tbb_root)/build/common_rules.inc
......
......@@ -24,14 +24,15 @@
# invalidate any other reasons why the executable file might be covered by
# the GNU General Public License.
# default target
default_malloc: malloc malloc_test
tbb_root ?= $(TBB22_INSTALL_DIR)
BUILDING_PHASE=1
TEST_RESOURCE = $(TBB.RES)
include $(tbb_root)/build/common.inc
DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
# default target
default_malloc: malloc malloc_test
MALLOC_ROOT ?= $(tbb_root)/src/tbbmalloc
MALLOC_SOURCE_ROOT ?= $(MALLOC_ROOT)
......@@ -134,34 +135,46 @@ malloc_proxy_dll: $(MALLOCPROXY.DLL)
add_debug=$(basename $(1))_debug$(suffix $(1))
cross_suffix=$(if $(crosstest),$(if $(DEBUG_SUFFIX),$(subst _debug,,$(1)),$(call add_debug,$(1))),$(1))
MALLOC_MAIN_TESTS = test_ScalableAllocator.exe test_ScalableAllocator_STL.exe test_malloc_compliance.exe test_malloc_regression.exe test_malloc_functionality.exe
MALLOC_C_TESTS = test_malloc_pure_c.exe
MALLOC_OVERLOAD_TESTS = test_malloc_overload.exe test_malloc_overload_proxy.exe
MALLOC_MAIN_TESTS = test_ScalableAllocator.$(TEST_EXT) test_ScalableAllocator_STL.$(TEST_EXT) test_malloc_compliance.$(TEST_EXT) test_malloc_regression.$(TEST_EXT)
MALLOC_OVERLOAD_TESTS = test_malloc_overload.$(TEST_EXT) test_malloc_overload_proxy.$(TEST_EXT)
MALLOC_LIB = $(call cross_suffix,$(MALLOC.LIB))
MALLOC_PROXY_LIB = $(call cross_suffix,$(MALLOCPROXY.LIB))
ifeq (windows.gcc,$(tbb_os).$(compiler))
test_malloc_overload.exe: LIBS += $(call cross_suffix,$(MALLOCPROXY.LIB))
test_malloc_overload.$(TEST_EXT): LIBS += $(MALLOC_PROXY_LIB)
endif
test_malloc_overload.exe: test_malloc_overload.$(OBJ)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $^ $(LIBDL) $(LIBS) $(LINK_FLAGS)
test_malloc_overload_proxy.exe: test_malloc_overload.$(OBJ) $(call cross_suffix,$(MALLOCPROXY.LIB))
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $^ $(LIBDL) $(LIBS) $(LINK_FLAGS)
test_malloc_overload.$(TEST_EXT): test_malloc_overload.$(OBJ)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(LIBDL) $(LIBS) $(LINK_FLAGS)
test_malloc_overload_proxy.$(TEST_EXT): test_malloc_overload.$(OBJ) $(MALLOC_PROXY_LIB)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(LIBDL) $(MALLOC_PROXY_LIB) $(LIBS) $(LINK_FLAGS)
$(MALLOC_MAIN_TESTS): %.exe: %.$(OBJ) $(call cross_suffix,$(MALLOC.LIB))
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $^ $(LIBS) $(LINK_FLAGS)
$(MALLOC_C_TESTS): %.exe: %.$(OBJ) $(call cross_suffix,$(MALLOC.LIB))
test_malloc_whitebox.$(TEST_EXT): test_malloc_whitebox.cpp $(MALLOC_ASM.OBJ) tbb_misc_malloc.$(OBJ)
$(CPLUS) $(OUTPUT_KEY)$@ $(M_CPLUS_FLAGS) $(M_INCLUDES) $^ $(LIBS) $(LINK_FLAGS)
$(MALLOC_MAIN_TESTS): %.$(TEST_EXT): %.$(OBJ) $(MALLOC_LIB)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(MALLOC_LIB) $(LIBS) $(LINK_FLAGS)
ifeq (,$(NO_C_TESTS))
MALLOC_C_TESTS = test_malloc_pure_c.$(TEST_EXT)
$(MALLOC_C_TESTS): %.$(TEST_EXT): %.$(OBJ) $(MALLOC_LIB)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $^ $(LIBS) $(LINK_FLAGS)
endif
# run_cmd is usually empty
malloc_test: $(call cross_suffix,$(MALLOC.DLL)) $(MALLOC_MAIN_TESTS) $(MALLOC_C_TESTS) $(MALLOC_OVERLOAD_TESTS)
$(run_cmd) ./test_malloc_functionality.exe 1:4
$(run_cmd) $(TEST_LAUNCHER) -l $(call cross_suffix,$(MALLOCPROXY.DLL)) test_malloc_overload.exe
$(run_cmd) $(TEST_LAUNCHER) test_malloc_overload_proxy.exe
$(run_cmd) $(TEST_LAUNCHER) test_malloc_compliance.exe 1:4
$(run_cmd) ./test_ScalableAllocator.exe
$(run_cmd) ./test_ScalableAllocator_STL.exe
$(run_cmd) ./test_malloc_regression.exe
$(run_cmd) ./test_malloc_pure_c.exe
malloc_test: $(call cross_suffix,$(MALLOC.DLL)) $(MALLOC_MAIN_TESTS) $(MALLOC_C_TESTS) $(MALLOC_OVERLOAD_TESTS) test_malloc_whitebox.$(TEST_EXT) $(AUX_TEST_DEPENDENCIES)
$(run_cmd) ./test_malloc_whitebox.$(TEST_EXT) 1:4
$(run_cmd) $(TEST_LAUNCHER) -l $(call cross_suffix,$(MALLOCPROXY.DLL)) test_malloc_overload.$(TEST_EXT)
$(run_cmd) $(TEST_LAUNCHER) test_malloc_overload_proxy.$(TEST_EXT)
$(run_cmd) $(TEST_LAUNCHER) test_malloc_compliance.$(TEST_EXT) 1:4
$(run_cmd) ./test_ScalableAllocator.$(TEST_EXT)
$(run_cmd) ./test_ScalableAllocator_STL.$(TEST_EXT)
$(run_cmd) ./test_malloc_regression.$(TEST_EXT)
ifeq (,$(NO_C_TESTS))
$(run_cmd) ./test_malloc_pure_c.$(TEST_EXT)
endif
#------------------------------------------------------
# End of rules for making the TBBMalloc unit tests
......
This diff is collapsed.
src/tbb
src/tbbmalloc
include/tbb
src/rml/server
src/rml/client
src/rml/include
source/malloc
......@@ -67,8 +67,9 @@ cross_cfg = $(if $(crosstest),$(call flip_cfg,$(1)),$(1))
ifdef BUILDING_PHASE
# Setting default configuration to release
cfg?=release
# And no lambas support by default for compilers that require special options to enable it
# No lambas or other C++0x extensions by default for compilers that implement them as experimental features
lambdas ?= 0
cpp0x ?= 0
# include compiler-specific build configurations
-include $(tbb_root)/build/$(tbb_os).$(compiler).inc
ifdef extra_inc
......
......@@ -34,7 +34,11 @@ ifeq ($(tbb_strict),1)
WARNING_KEY += $(WARNING_AS_ERROR_KEY)
endif
INCLUDES += $(INCLUDE_KEY)$(tbb_root)/src $(INCLUDE_KEY)$(tbb_root)/include
ifndef TEST_EXT
TEST_EXT = exe
endif
INCLUDES += $(INCLUDE_KEY)$(tbb_root)/src $(INCLUDE_KEY)$(tbb_root)/src/rml/include $(INCLUDE_KEY)$(tbb_root)/include
CPLUS_FLAGS += $(WARNING_KEY) $(CXXFLAGS)
LINK_FLAGS += $(LDFLAGS)
......@@ -53,7 +57,7 @@ CONLY ?= $(CPLUS)
# The most generic rules
%.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(INCLUDES) $<
$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $<
%.$(OBJ): %.c
$(CONLY) $(COMPILE_ONLY) $(C_FLAGS) $(INCLUDES) $<
......@@ -68,15 +72,15 @@ CONLY ?= $(CPLUS)
# Rule for generating .E file if needed for visual inspection
%.E: %.cpp
$(CPLUS) $(CPLUS_FLAGS) $(INCLUDES) $(PREPROC_ONLY) $< >$@
$(CPLUS) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES) $(PREPROC_ONLY) $< >$@
# TODO Rule for generating .asm file if needed for visual inspection
%.asm: %.cpp
$(CPLUS) /c /Fa $(CPLUS_FLAGS) $(INCLUDES) $<
$(CPLUS) /c /Fa $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES) $<
# TODO Rule for generating .s file if needed for visual inspection
%.s: %.cpp
$(CPLUS) -S $(CPLUS_FLAGS) $(INCLUDES) $<
$(CPLUS) -S $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES) $<
# Customizations
......@@ -86,17 +90,17 @@ ifeq (1,$(TBB_NOSTRICT))
# The files below need the -strict_ansi flag downgraded to -ansi to compile
$(KNOWN_NOSTRICT): %.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS_NOSTRICT) $(INCLUDES) $<
$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS_NOSTRICT) $(CXX_ONLY_FLAGS) $(INCLUDES) $<
endif
$(KNOWN_WARNINGS): %.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(subst $(WARNING_KEY),,$(CPLUS_FLAGS_NOSTRICT)) $(INCLUDES) $<
$(CPLUS) $(COMPILE_ONLY) $(subst $(WARNING_KEY),,$(CPLUS_FLAGS_NOSTRICT)) $(CXX_ONLY_FLAGS) $(INCLUDES) $<
tbb_misc.$(OBJ): tbb_misc.cpp version_string.tmp
$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS_NOSTRICT) $(INCLUDE_KEY). $(INCLUDES) $<
$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS_NOSTRICT) $(CXX_ONLY_FLAGS) $(INCLUDE_KEY). $(INCLUDES) $<
tbb_misc.E: tbb_misc.cpp version_string.tmp
$(CPLUS) $(CPLUS_FLAGS_NOSTRICT) $(INCLUDE_KEY). $(INCLUDES) $(PREPROC_ONLY) $< >$@
$(CPLUS) $(CPLUS_FLAGS_NOSTRICT) $(CXX_ONLY_FLAGS) $(INCLUDE_KEY). $(INCLUDES) $(PREPROC_ONLY) $< >$@
%.res: %.rc version_string.tmp $(TBB.MANIFEST)
rc /Fo$@ $(INCLUDES) $(filter /D%,$(CPLUS_FLAGS)) $<
......
......@@ -34,6 +34,7 @@ PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -Wall
WARNING_SUPPRESS = -Wno-parentheses
RML_WARNING_SUPPRESS = -Wno-non-virtual-dtor
DYLIB_KEY = -shared
LIBDL = -ldl
......@@ -52,6 +53,10 @@ ifeq ($(cfg), debug)
CPLUS_FLAGS = -DTBB_USE_DEBUG -DDO_ITT_NOTIFY -g -O0 -DUSE_PTHREAD
endif
ifneq (0,$(cpp0x))
CXX_ONLY_FLAGS = -std=c++0x
endif
ASM=
ASM_FLAGS=
......
......@@ -70,7 +70,7 @@ ifeq (ia64,$(arch))
CPLUS_FLAGS += $(PIC_KEY)
endif
ifneq (0,$(lambdas))
ifneq (00,$(lambdas)$(cpp0x))
CPLUS_FLAGS += -std=c++0x -D_TBB_CPP0X
endif
......
......@@ -59,6 +59,12 @@ ifeq (intel64,$(arch))
LIB_LINK_FLAGS += -m64
endif
ifeq (ia32,$(arch))
CPLUS_FLAGS += -m32
LINK_FLAGS += -m32
LIB_LINK_FLAGS += -m32
endif
ifeq (ppc64,$(arch))
CPLUS_FLAGS += -arch ppc64
LINK_FLAGS += -arch ppc64
......
......@@ -59,7 +59,7 @@ ifneq (,$(codecov))
CPLUS_FLAGS += -prof-genx
endif
ifneq (0,$(lambdas))
ifneq (00,$(lambdas)$(cpp0x))
CPLUS_FLAGS += -std=c++0x -D_TBB_CPP0X
endif
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -92,7 +92,7 @@ endif
C_FLAGS = $(CPLUS_FLAGS)
ifneq (0,$(lambdas))
ifneq (00,$(lambdas)$(cpp0x))
CPLUS_FLAGS += /Qstd=c++0x /D_TBB_CPP0X
endif
......
......@@ -78,7 +78,7 @@ MALLOC.DLL = tbbmalloc$(DEBUG_SUFFIX).$(DLL)
MALLOC.LIB = tbbmalloc$(DEBUG_SUFFIX).$(LIBEXT)
MALLOC.RES = tbbmalloc.res
MALLOC.MANIFEST =
ifneq ($(runtime),vc7.1)
ifneq ($(filter vc8 vc9,$(runtime)),)
MALLOC.MANIFEST = tbbmanifest.exe.manifest
endif
LINK_MALLOC.LIB = $(MALLOC.LIB)
......
......@@ -41,14 +41,14 @@ Software - Minimum Requirements
Supported operating system (see below)
Supported compiler (see below)
Xcode* tool suite 2.4.1 or higher (Mac OS* X systems only)
Xcode* tool suite 3.1.2 or higher (Mac OS* X systems only)
Microsoft* Internet Explorer* 6.0, or other compatible web browser
Adobe(R) Reader(R)* 6.0 or higher
Software - Recommended
Intel(R) Parallel Studio
Intel(R) C++ Compiler 10.0 or higher
Intel(R) C++ Compiler 10.1 or higher
Intel(R) Thread Checker 3.1 or higher
Intel(R) Thread Profiler 3.1 or higher
......@@ -59,12 +59,13 @@ Software - Supported Operating Systems
Microsoft* Windows* Server 2003
Microsoft* Windows* Vista
Microsoft* Windows* Server 2008
Microsoft* Windows* 7
Linux* Systems
Red Hat* Enterprise Linux* 3, 4, 5
(when using Red Hat* Enterprise Linux* 4 with Intel(R)
Itanium(R) processors, operating system Update 2 or higher
is recommended)
Red Hat* Fedora* 10, 11
Fedora* 10, 11
(not with Intel(R) Itanium(R) processors)
Asianux* 3.0
Debian* GNU/Linux* 4.0, 5.0
......@@ -83,7 +84,7 @@ Software - Supported Compilers
Windows* systems only)
Microsoft* Visual C++ 9.0 (Microsoft* Visual Studio* 2008,
Windows* systems only)
Intel(R) C++ Compiler 10.0 or higher
Intel(R) C++ Compiler 10.1 or higher
For each supported Linux* operating system, the standard gcc
version provided with that operating system is supported,
including gcc 3.2 through 4.4
......@@ -132,14 +133,13 @@ Library Issues
the Tutorial in the product "doc" sub-directory for more details
on debug vs. release libraries.
- In some circumstances an exception thrown during concurrent_vector
growth operation may deadlock other threads that also attempt to
grow the vector. To prevent the issue, avoid going out of memory
and throwing exceptions in constructors of stored objects.
- Installer doesn't accept non-commercial serial numbers on Red Hat*
- Installer doesn't accept non-commercial serial numbers on
Fedora* 11. To install the product on the system use license
file provided after registration of the serial number.
file provided after registration of the serial number.
- OpenGL* draw part in examples might freeze during execution on
Mac OS* X 10.6 and above but rendering and calculation parts should
work there.
------------------------------------------------------------------------
Copyright (C) 2005-2009 Intel Corporation. All Rights Reserved.
......
......@@ -20,9 +20,9 @@
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>tbb::tbb_hash_compare&lt; T &gt; Member List</h1>This is the complete list of members for <a class="el" href="a00170.html">tbb::tbb_hash_compare&lt; T &gt;</a>, including all inherited members.<p><table>
<tr bgcolor="#f0f0f0"><td><b>equal</b>(const T &amp;a, const T &amp;b) (defined in <a class="el" href="a00170.html">tbb::tbb_hash_compare&lt; T &gt;</a>)</td><td><a class="el" href="a00170.html">tbb::tbb_hash_compare&lt; T &gt;</a></td><td><code> [inline, static]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><b>hash</b>(const T &amp;t) (defined in <a class="el" href="a00170.html">tbb::tbb_hash_compare&lt; T &gt;</a>)</td><td><a class="el" href="a00170.html">tbb::tbb_hash_compare&lt; T &gt;</a></td><td><code> [inline, static]</code></td></tr>
<h1>tbb::tbb_hash_compare&lt; T &gt; Member List</h1>This is the complete list of members for <a class="el" href="a00174.html">tbb::tbb_hash_compare&lt; T &gt;</a>, including all inherited members.<p><table>
<tr bgcolor="#f0f0f0"><td><b>equal</b>(const T &amp;a, const T &amp;b) (defined in <a class="el" href="a00174.html">tbb::tbb_hash_compare&lt; T &gt;</a>)</td><td><a class="el" href="a00174.html">tbb::tbb_hash_compare&lt; T &gt;</a></td><td><code> [inline, static]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><b>hash</b>(const T &amp;t) (defined in <a class="el" href="a00174.html">tbb::tbb_hash_compare&lt; T &gt;</a>)</td><td><a class="el" href="a00174.html">tbb::tbb_hash_compare&lt; T &gt;</a></td><td><code> [inline, static]</code></td></tr>
</table><hr>
<p></p>
Copyright &copy; 2005-2009 Intel Corporation. All Rights Reserved.
......
......@@ -26,6 +26,7 @@
<tr bgcolor="#f0f0f0"><td><b>begin</b>() const (defined in <a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a>)</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="a00130.html#36bcd50fd5383f3682032323b2d74333">clear</a>()</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="a00130.html#342582ba05d9fb893ed80875d2b7a42f">concurrent_hash_map</a>(const allocator_type &amp;a=allocator_type())</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="a00130.html#c1bf3c669935aceb1dc0169e3a19e0be">concurrent_hash_map</a>(size_type n, const allocator_type &amp;a=allocator_type())</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="a00130.html#bc50f7bca65d0c27cbf5c31d2fa63eac">concurrent_hash_map</a>(const concurrent_hash_map &amp;table, const allocator_type &amp;a=allocator_type())</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="a00130.html#b5132202dff9ee3d619bef6b1d84edea">concurrent_hash_map</a>(I first, I last, const allocator_type &amp;a=allocator_type())</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><b>const_accessor</b> (defined in <a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a>)</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [friend]</code></td></tr>
......@@ -47,7 +48,6 @@
<tr class="memlist"><td><a class="el" href="a00130.html#671965989ffb5f6084c776cb0bb6cdab">exclude</a>(const_accessor &amp;item_accessor, bool readonly)</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="a00130.html#9fa1ca60af4ef761a100617b27718585">find</a>(const_accessor &amp;result, const Key &amp;key) const </td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="a00130.html#4f7cc0aab2d8216c0a6e681f32dd48c8">find</a>(accessor &amp;result, const Key &amp;key)</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="a00130.html#2f1ca7e8319c464349a9de304b6dbf4a">find</a>(const Key &amp;key) const </td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [inline, protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="a00130.html#79d1e5c3b975dbd38b43138266fe4c0e">get_allocator</a>() const </td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="a00130.html#67d8c254b1666d89267c8a4a33c864f3">insert</a>(const_accessor &amp;result, const Key &amp;key)</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="a00130.html#8ea81ff7fea044f859273b354c91c185">insert</a>(accessor &amp;result, const Key &amp;key)</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [inline]</code></td></tr>
......@@ -60,6 +60,7 @@
<tr class="memlist"><td><a class="el" href="a00130.html#7973cd92f57dcb092ab757f8d9e089f9">internal_copy</a>(const concurrent_hash_map &amp;source)</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [protected]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><b>internal_copy</b>(I first, I last) (defined in <a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a>)</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="a00130.html#308ec5ad19fdd1be4d345f8013070150">internal_equal_range</a>(const Key &amp;key, I end) const </td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="a00130.html#f0cdf5930563a49ffe827c520e948e01">internal_fast_find</a>(const Key &amp;key) const </td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [inline, protected]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><b>iterator</b> typedef (defined in <a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a>)</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><b>key_type</b> typedef (defined in <a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a>)</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="a00130.html#0f0ba43d9cb783f12dd01bf5677da097">lookup</a>(bool op_insert, const Key &amp;key, const T *t, const_accessor *result, bool write)</td><td><a class="el" href="a00130.html">tbb::concurrent_hash_map&lt; Key, T, HashCompare, Allocator &gt;</a></td><td><code> [protected]</code></td></tr>
......
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>tbb::null_mutex Member List</h1>This is the complete list of members for <a class="el" href="a00144.html">tbb::null_mutex</a>, including all inherited members.<p><table>
<tr bgcolor="#f0f0f0"><td><b>is_fair_mutex</b> (defined in <a class="el" href="a00144.html">tbb::null_mutex</a>)</td><td><a class="el" href="a00144.html">tbb::null_mutex</a></td><td><code> [static]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><b>is_recursive_mutex</b> (defined in <a class="el" href="a00144.html">tbb::null_mutex</a>)</td><td><a class="el" href="a00144.html">tbb::null_mutex</a></td><td><code> [static]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><b>is_rw_mutex</b> (defined in <a class="el" href="a00144.html">tbb::null_mutex</a>)</td><td><a class="el" href="a00144.html">tbb::null_mutex</a></td><td><code> [static]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><b>null_mutex</b>() (defined in <a class="el" href="a00144.html">tbb::null_mutex</a>)</td><td><a class="el" href="a00144.html">tbb::null_mutex</a></td><td><code> [inline]</code></td></tr>
</table><hr>
<p></p>
Copyright &copy; 2005-2009 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
subsidiaries in the United States and other countries.
<p></p>
* Other names and brands may be claimed as the property of others.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>tbb::null_mutex::scoped_lock Member List</h1>This is the complete list of members for <a class="el" href="a00145.html">tbb::null_mutex::scoped_lock</a>, including all inherited members.<p><table>
<tr bgcolor="#f0f0f0"><td><b>acquire</b>(null_mutex &amp;) (defined in <a class="el" href="a00145.html">tbb::null_mutex::scoped_lock</a>)</td><td><a class="el" href="a00145.html">tbb::null_mutex::scoped_lock</a></td><td><code> [inline]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><b>release</b>() (defined in <a class="el" href="a00145.html">tbb::null_mutex::scoped_lock</a>)</td><td><a class="el" href="a00145.html">tbb::null_mutex::scoped_lock</a></td><td><code> [inline]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><b>scoped_lock</b>() (defined in <a class="el" href="a00145.html">tbb::null_mutex::scoped_lock</a>)</td><td><a class="el" href="a00145.html">tbb::null_mutex::scoped_lock</a></td><td><code> [inline]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><b>scoped_lock</b>(null_mutex &amp;) (defined in <a class="el" href="a00145.html">tbb::null_mutex::scoped_lock</a>)</td><td><a class="el" href="a00145.html">tbb::null_mutex::scoped_lock</a></td><td><code> [inline]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><b>try_acquire</b>(null_mutex &amp;) (defined in <a class="el" href="a00145.html">tbb::null_mutex::scoped_lock</a>)</td><td><a class="el" href="a00145.html">tbb::null_mutex::scoped_lock</a></td><td><code> [inline]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><b>~scoped_lock</b>() (defined in <a class="el" href="a00145.html">tbb::null_mutex::scoped_lock</a>)</td><td><a class="el" href="a00145.html">tbb::null_mutex::scoped_lock</a></td><td><code> [inline]</code></td></tr>
</table><hr>
<p></p>
Copyright &copy; 2005-2009 Intel Corporation. All Rights Reserved.