Skip to content

Commit

Permalink
Commit oneTBB source code 627cac6
Browse files Browse the repository at this point in the history
  • Loading branch information
tbbdev committed Feb 13, 2024
1 parent bc3abe7 commit 9afd759
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 11 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2020-2023 Intel Corporation
# Copyright (c) 2020-2024 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -194,7 +194,7 @@ endif()
# -------------------------------------------------------------------
# Common dependencies
#force -pthread during compilation for Emscripten
if (EMSCRIPTEN)
if (EMSCRIPTEN AND NOT EMSCRIPTEN_WITHOUT_PTHREAD)
set(THREADS_HAVE_PTHREAD_ARG TRUE)
endif()

Expand Down
4 changes: 3 additions & 1 deletion WASM_Support.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,12 @@ To build the system, run:
```
mkdir build && cd build
emcmake cmake .. -DCMAKE_CXX_COMPILER=em++ -DCMAKE_C_COMPILER=emcc -DTBB_STRICT=OFF -DCMAKE_CXX_FLAGS=-Wno-unused-command-line-argument -DTBB_DISABLE_HWLOC_AUTOMATIC_SEARCH=ON -DBUILD_SHARED_LIBS=ON -DTBB_EXAMPLES=ON -DTBB_TEST=ON
```
To compile oneTBB without ``pthreads``, set the flag ``-DEMSCRIPTEN_WITHOUT_PTHREAD=true`` in the command above. By default, oneTBB uses the ``pthreads``.
```
cmake --build . <options>
cmake --install . <options>
```

Where:

* ``emcmake`` - a tool that sets up the environment for Emscripten*.
Expand Down
6 changes: 4 additions & 2 deletions cmake/compilers/Clang.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2020-2023 Intel Corporation
# Copyright (c) 2020-2024 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -16,7 +16,9 @@ if (EMSCRIPTEN)
set(TBB_EMSCRIPTEN 1)
set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -fexceptions)
set(TBB_TEST_LINK_FLAGS ${TBB_COMMON_LINK_FLAGS} -fexceptions -sINITIAL_MEMORY=65536000 -sALLOW_MEMORY_GROWTH=1 -sEXIT_RUNTIME=1)
set_property(TARGET Threads::Threads PROPERTY INTERFACE_LINK_LIBRARIES "-pthread")
if (NOT EMSCRIPTEN_WITHOUT_PTHREAD)
set_property(TARGET Threads::Threads PROPERTY INTERFACE_LINK_LIBRARIES "-pthread")
endif()
endif()

if (MINGW)
Expand Down
10 changes: 4 additions & 6 deletions src/tbb/tcm_adaptor.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
Copyright (c) 2023 Intel Corporation
Copyright (c) 2023-2024 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -137,11 +137,9 @@ class tcm_client : public pm_client {
// The permit has changed during the reading, so the callback will be invoked soon one more time and
// we can just skip this renegotiation iteration.
if (!new_permit.flags.stale) {
__TBB_ASSERT(
new_permit.state != TCM_PERMIT_STATE_INACTIVE || new_concurrency == 0,
"TCM did not nullify resources while deactivating the permit"
);
delta = update_concurrency(new_concurrency);
// If there is no other demand in TCM, the permit may still have granted concurrency but
// be in the deactivated state thus we enforce 0 allotment to preserve arena invariants.
delta = update_concurrency(new_permit.state != TCM_PERMIT_STATE_INACTIVE ? new_concurrency : 0);
}
}
if (delta) {
Expand Down

0 comments on commit 9afd759

Please sign in to comment.