If I may suggest, rather than blocking the sender in case the channel is
full, I suggest simply returning an error (or raising a condition)
immediately.

This is both extremely simple (for the channel implementer) and heavily
customizable (for the user).

It seems certainly much easier than provide an extremely wide array of
different channels as part of the core Rust distribution... and actually
makes it possible to build libraries for common cases (such as local
queuing).

-- Matthieu.


On Wed, Oct 30, 2013 at 6:37 AM, Ben Kloosterman <bkloo...@gmail.com> wrote:

> Simon 1 thing you may want to test is 10-20 senders to 1 reciever.
>  Multiple senders have completely diffirent behaviour and can create a lot
> of contention around locks / interlocked calls . Also checks what happens
> to CPU when the receiver blocks for 100ms disk accesses every 100ms.
>
> Disruptor as used by Lmax normally uses very few senders / receivers and
> the main/busy  threads do no IO.
>
> Ben
>
>
> On Wed, Oct 30, 2013 at 1:03 PM, Simon Ruggier <simo...@gmail.com> wrote:
>
>> See my first message, I tested the throughput of the pipes API, it is far
>> slower. Synchronization between sender and receiver depends on which wait
>> strategy is used. There is a strategy that blocks indefinitely if no new
>> items are sent. To see how it works, look at this comment:
>>
>> https://github.com/sruggier/rust-disruptor/blob/7cbc2fababa087d0bc116a8a739cbb759354388b/disruptor.rs#L762
>>
>> Multiple senders are also on my roadmap.
>>
>> Some things just aren't testable, because the memory ordering guarantees
>> depend on the hardware you're running on. For it to be truly correct and
>> portable, the source code has to be simple enough for a reviewer to able to
>> verify correctness at compile time. The comment I link to above is a good
>> example, I could never test that code thoroughly enough to be satisfied, a
>> proof of correctness is the only way.
>>
>>
>>
> _______________________________________________
> 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