mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-05-29 02:31:20 +00:00
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.
This commit is contained in:
parent
3d3666e1a6
commit
217dd2ca22
3
clippy.toml
Normal file
3
clippy.toml
Normal file
@ -0,0 +1,3 @@
|
||||
disallowed-methods = [
|
||||
{ path = "futures::channel::mpsc::unbounded", reason = "does not enforce backpressure" },
|
||||
]
|
Loading…
x
Reference in New Issue
Block a user