On Tue, Dec 31, 2013 at 4:40 PM, Jason Fager <jfa...@gmail.com> wrote: > About the deadlock scenario, why aren't non-blocking sends sufficient to > address that concern? I'd personally argue just as strenuously as for > bounded channels that robust systems shouldn't have senders that block > indefinitely (nothing like waking up to a production server that's hung on a > socket someone removed the timeout from).
They are clearly sufficient to eliminate deadlock, since nothing blocks anymore. (Livelock is still possible, though.) > Even if you don't OOM, channels that are too large are themselves a major > problem. If you actually use your hardware you only have so much capacity. > If your channel's getting backed up it's probably for a reason; when that > reason gets resolved you're going to need to go back to handling your normal > load plus everything you've been back-logging on your unbounded channels. > That's one of the main things you tune with bounded channels: how backed up > can this reasonably be before I just can't catch up anymore? Such a bound only exists in predictable environments. Most of the time I would expect people to ask a different question, like "how backed up can this be before I can conclude something has gone wrong?" or "how backed up can this be before I just don't care anymore?" -- Devin _______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev