TGViewer
C++ - Reddit C++ - Reddit @r_cpp · 229 subscribers
Post #24740 9
([docs](https://www.fleetcode.com/oss/tmc/docs/v1.4/executors/ex_cpu.html#hybrid-work-steering))([example](https://github.com/tzcnt/tmc-examples/blob/44ce66de8e74107c803645c82ddd88a7be35fd29/examples/hwloc/hybrid_executor.cpp)) Implement work steering for P- and E- cores on hybrid chips (e.g. Intel Hybrid / ARM big.LITTLE). Apple M / MacOS is also supported by setting the QoS class.
* ([example](https://github.com/tzcnt/tmc-examples/blob/44ce66de8e74107c803645c82ddd88a7be35fd29/examples/hwloc/asio_thread_per_core.cpp)) Turn Asio into a thread-per-core, share-nothing executor
* ([example](https://github.com/tzcnt/tmc-examples/blob/44ce66de8e74107c803645c82ddd88a7be35fd29/examples/hwloc/asio_server_per_cache.cpp)) Create an Asio thread *and* a worker thread pool for each chiplet in the system, that communicate exclusively within the same cache. This lets you scale both I/O and compute without cross-cache latency.

# Killer Features, Round 2

TooManyCooks offers several other features that others do not:

* ([docs](https://fleetcode.com/oss/tmc/docs/v1.4/halo/index.html)) ([example](https://github.com/tzcnt/tmc-examples/blob/44ce66de8e74107c803645c82ddd88a7be35fd29/tests/test_halo.cpp)) support for the only working HALO implementation ([Clang attributes](https://clang.llvm.org/docs/AttributeReference.html#coro-await-elidable))
* ([docs](https://www.fleetcode.com/oss/tmc/docs/v1.4/type_traits.html)) type traits to let you write generic code that handles values, awaitables, tasks, and functors
* ([docs](https://www.fleetcode.com/oss/tmc/docs/v1.4/priority.html)) support for multiple priority levels, as well as executor and priority affinity, are integrated throughout the library
* ([example](https://github.com/tzcnt/tmc-examples/blob/44ce66de8e74107c803645c82ddd88a7be35fd29/examples/asio/http_server.cpp)) seamless Asio integration

# Mundane Feature Parity

TooManyCooks also aims to offer feature parity with the usual things that other libraries do:

* ([docs](https://www.fleetcode.com/oss/tmc/docs/v1.4/executors/index.html)) various executor types
* ([docs](https://www.fleetcode.com/oss/tmc/docs/v1.4/awaitables/index.html)) various ways to fork/join tasks
* ([docs](https://www.fleetcode.com/oss/tmc/docs/v1.4/data_structures/channel.html)) async data structures (tmc::channel)
* ([docs](https://www.fleetcode.com/oss/tmc/docs/v1.4/control_structures/index.html)) async control structures (tmc::mutex, tmc::semaphore, etc)

# Designed for Brownfield Development

TooManyCooks has a number of features that will allow you to slowly introduce coroutines/task-based concurrency into an existing codebase without needing a full rewrite:

* ([docs](https://fleetcode.com/oss/tmc/docs/v1.4/awaitables/fork_group.html)) flexible awaitables like `tmc::fork_group` allow you to limit the virality of coroutines - only the outermost (awaiting) and innermost (parallel/async) function actually need to be coroutines. Everything in the middle of the stack can stay as a regular function.
* global executor handles (`tmc::cpu_executor()`, `tmc::asio_executor()`) and the `tmc::set_default_executor()` function let you initiate work from anywhere in your codebase
* ([docs](https://fleetcode.com/oss/tmc/docs/v1.4/executors/ex_manual_st.html)) a manual executor lets you run work from inside of another event loop at a specific time
* ([docs](https://fleetcode.com/oss/tmc/docs/v1.4/integration/external_awaitables.html#default-behavior-it-just-works)) ([example](https://github.com/tzcnt/tmc-examples/blob/44ce66de8e74107c803645c82ddd88a7be35fd29/examples/external/external_awaitable.cpp)) foreign awaitables are automatically wrapped to maintain executor and priority affinity
* ([docs](https://fleetcode.com/oss/tmc/docs/v1.4/integration/external_awaitables.html#fully-integrating)) ([example](https://github.com/tzcnt/tmc-examples/blob/44ce66de8e74107c803645c82ddd88a7be35fd29/examples/external/callback_awaitable.hpp#L157)) or you can specialize `tmc::detail::awaitable_traits` to fully integrate an external awaitable
*
GitHub tmc-examples/examples/hwloc/asio_thread_per_core.cpp at 44ce66de8e74107c803645c82ddd88a7be35fd29 · tzcnt/tmc-examples TooManyCooks examples. Contribute to tzcnt/tmc-examples development by creating an account on GitHub.
More from @r_cpp
  1. Oct 8, 2026Removed by Reddit Removed by Reddit on account of violating the [content policy. ] https:/…
  2. Oct 8, 2026Is there a way to search across all P and N papers throughout standardization history? It…
  3. Oct 8, 2026CppCast Episode 412 : Safety and Interoperability with Rust and C++ https://cppcast.com/sa…
  4. Oct 8, 2026VeloCache: A high-performance, Redis-compatible in-memory key-value store built from scrat…
  5. Oct 8, 2026Which C++ Hashmap Should You Actually Use? https://martin.ankerl.com/which-hash-map/ https…
  6. Oct 8, 2026Lazy Evaluation - Operators https://breese.github.io/2026/09/04/lazy-operator.html https:/…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →