On Tue, Dec 31, 2013 at 6:16 AM, Patrick Walton <pcwal...@mozilla.com>wrote:

> Can someone address Simon Marlow's point here?
>
> https://plus.google.com/109566665911385859313/posts/FAmNTExSLtz
>
> > unbuffered channels are "synchronous" in the sense that both reader
> > and writer must be ready at the same time. It's easy to deadlock if
> > you're not careful. Buffered channels allow asynchronous writes, but
> > only up to the buffer size, so that doesn't actually make things
> > easier. Fully asynchronous channels, like you get in Erlang and
> > Haskell don't have this problem, but they are unbounded so you have
> > to be careful about filling them up (Erlang uses a clever scheduling
> > trick to mitigate that problem, though).
>
>
I am concerned that we are only hearing one side of the argument here, and
> Haskell folks seem to have come down fairly strongly in favor of unbounded
> channels.
>
> It also seems to me that the argument is partial, and only consider
blocking sends. It would be interesting to know if they envisaged
non-blocking sends and if so why they seem to have been discarded.


> To reiterate: At this point I believe we should have both as first-class
> citizens, like `java.util.concurrent`. Choosing one or the other seems to
> be neglecting too many use cases.
>
>
> Patrick
>
> _______________________________________________
> Rust-dev mailing list
> Rust-dev@mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev
>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to