From 217dd2ca22b58d7f707b038cb1c32a127e1992cc Mon Sep 17 00:00:00 2001 From: Max Inden Date: Sat, 20 Aug 2022 07:31:45 +0200 Subject: [PATCH] clippy.toml: Create config and disallow unbounded channels (#2823) When using channels (e.g. `futures::channel::mpsc` or `std::sync::mpsc`) always use the bounded variant, never use the unbounded variant. When using a bounded channel, a slow consumer eventually slows down a fast producer once the channel bound is reached, ideally granting the slow consumer more system resources e.g. CPU time, keeping queues small and thus latencies low. When using an unbounded channel a fast producer continues being a fast producer, growing the channel buffer indefinitely, increasing latency until the illusion of unboundedness breaks and the system runs out of memory. One may use an unbounded channel if one enforces backpressure through an out-of-band mechanism, e.g. the consumer granting the producer send-tokens through a side-channel. --- clippy.toml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 clippy.toml diff --git a/clippy.toml b/clippy.toml new file mode 100644 index 00000000..f66cc0ac --- /dev/null +++ b/clippy.toml @@ -0,0 +1,3 @@ +disallowed-methods = [ + { path = "futures::channel::mpsc::unbounded", reason = "does not enforce backpressure" }, +]