Cargo Features
[dependencies]
executors = { version = "0.9.0", default-features = false, features = ["threadpool-exec", "cb-channel-exec", "workstealing-exec", "defaults", "ws-timed-fairness", "ws-no-park", "thread-pinning", "numa-aware", "produce-metrics"] }
- default = cb-channel-exec, defaults, threadpool-exec, workstealing-exec, ws-timed-fairness
-
These default features are set whenever
executors
is added without
somewhere in the dependency tree.default-features = false - threadpool-exec default = threadpool
-
Affects
executors::threadpool_executor
… - cb-channel-exec default = async-task, crossbeam-channel
-
Affects
executors::crossbeam_channel_pool
,executors::futures_executor
… - workstealing-exec default = async-task, crossbeam-channel, crossbeam-deque, crossbeam-utils, rand
-
Affects
executors::crossbeam_workstealing_pool
,executors::futures_executor
… - defaults default = num_cpus
- ws-timed-fairness default
-
In the workstealing executor, check the global queues every 1ms
- ws-no-park
-
Otherwise check the global queues every 100 jobs
In the workstealing executor, never park worker threads - thread-pinning numa-aware? = core_affinity
- numa-aware = thread-pinning
-
Affects
executors::numa_utils
… - produce-metrics = metrics
-
Affects
common::Executor.register_metrics
…
Features from optional dependencies
In crates that don't use the dep:
syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.
- crossbeam-channel cb-channel-exec workstealing-exec
- threadpool threadpool-exec
- crossbeam-utils workstealing-exec
- crossbeam-deque workstealing-exec
- rand workstealing-exec
- num_cpus defaults
- core_affinity thread-pinning?
-
Enables core_affinity ^0.5
- async-task cb-channel-exec workstealing-exec
- metrics produce-metrics?
-
Enables metrics ^0.14