stlab 2.4.0
Modern, modular C++ algorithms, data structures, and concurrency primitives
Loading...
Searching...
No Matches
concurrency

Detailed Description

Headers under stlab/concurrency/ .

Abstractions for multi-core algorithms with less contention: futures, channels, serial queues, and related utilities. Tasks, executors, timers, and process lifecycle APIs belong to the public dependency stlab-execution, using their original header paths.

stlab::future differs from std::future in several ways:

  • Continuations (then, recover) and combinators (when_all, when_any).
  • Multiple continuations from the same future when the value type is copyable.
  • Cancellation of uniquely contributing work when a future or packaged_task is destroyed before completion.
  • Custom executors and automatic flattening of future<future<T>> to future<T>.

Executor/backend contracts are documented by stlab-execution's own local Doxygen build, not this package. That package and its documentation site are unpublished.

Tooling: building tests uses CMake and doctest. Contributors include Sean Parent, Foster Brereton, Felix Petriconi, and others.

Topics

 await
 Blocking wait helpers for futures (await, etc.).
 channel
 Process-oriented channels (sender/receiver) and related types.
 future
 Futures, packaged tasks, and coroutine integration.
 progress
 Progress tracking wrapper for concurrent tasks.
 ready_future
 Factory functions for already-resolved futures.
 serial_queue
 Serial executor and scheduling modes built on futures.
 traits
 Type traits and detection helpers used by the concurrency library.
 tuple_algorithm
 Tuple algorithms and utilities (including for future combiners).