Skip to content

A Rust library for running blocking jobs on a dedicated thread pool with CPU core affinity per thread

License

Notifications You must be signed in to change notification settings

surrealdb/affinitypool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

YaZasnyalArtem Vasiliev
and
Artem Vasiliev
Mar 21, 2025
b2e3470 · Mar 21, 2025

History

27 Commits
Mar 21, 2025
Jan 6, 2025
Jan 6, 2025
Jan 28, 2025
Jan 6, 2025
Jan 6, 2025
Jan 12, 2025

Repository files navigation

affinitypool

A threadpool for running blocking jobs on a dedicated thread pool. Blocking tasks can be sent asynchronously to the pool, where the task will be queued until a worker thread is free to process the task. Tasks are processed in a FIFO order.

For optimised workloads, the affinity of each thread can be specified, ensuring that each thread can request to be pinned to a certain CPU core, allowing for more parallelism, and better performance guarantees for blocking workloads.

Original

This code is heavily inspired by threadpool, licensed under the Apache License 2.0 and MIT licenses.