The bcpp::concurrency namespace contains two related C++20 libraries. Signal
Tree provides concurrent signal selection; Work Contract uses it to schedule
persistent activities on application-owned worker threads.
| Library | Header | CMake target | Documentation |
|---|---|---|---|
| Signal Tree | <library/signal_tree.h> |
bcpp::signal_tree |
Guide, testing, future work |
| Work Contract | <library/work_contract.h> |
bcpp::work_contract |
Introduction, concurrency model, testing |
| Complete namespace | <library/concurrency.h> |
bcpp::concurrency |
Includes both libraries |
bcpp::work_contract links bcpp::signal_tree publicly, so consumers of Work
Contract receive its Signal Tree dependency automatically. bcpp::concurrency
links the complete target graph.
cmake -S . -B build
cmake --build build -j
ctest --test-dir build --output-on-failureBenchmarks are opt-in through SIGNAL_TREE_BUILD_BENCHMARK and
WORK_CONTRACT_BUILD_BENCHMARK.