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 default-features = false somewhere in the dependency tree.

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