On Tue, Feb 15, 2011 at 11:39 PM, Martin Sustrik <sust...@250bpm.com> wrote:
> On 02/16/2011 07:01 AM, Dhammika Pathirana wrote:
>
>> We have to either block on send() or return EAGAIN, but these are not
>> trivial changes :-(
>
> There's no easy solution. Blocking leads to deadlocks. EAGAIN is just
> shifting the responsibility to the caller. What should we do when
> malibox_t::send() returns EAGAIN? Drop the command? If so, missing commands
> would break the internal algorithms.
>

Why don't we fix the deadlock, that sounds like a bug,


> The only sane way IMO is to carefully modify the algorithms to limit the
> number of commands that can exist at the same time. Say: At most 16k of
> commands at any single point in time. (Similar to how linux kernel
> hard-limits the size of callstack.)
>

This'll add more bookkeeping for regular use cases.


Dhammika
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to