[zeromq-dev] czmq: zloop_poller for stdin - ambiguity

Heinrich Hartmann derhein at gmail.com
Fri Mar 14 11:42:40 CET 2014


Just a comment on the side:

Unix pipes and ZeroMQ sockets are indeed a neat mix. Have a look at
the examples here
* https://github.com/HeinrichHartmann/zmqdump#examples
* https://twitter.com/HeinrichHartman/status/440942775173799936

@Michael: Can you comment a bit more on your use case?
Your gist seems related to zmqdump. Maybe you have something better.

Best regards,
Heinrich

On Thu, Mar 13, 2014 at 11:21 PM, Pieter Hintjens <ph at imatix.com> wrote:
> I merged your patch, nice. :)
>
> I'd never thought of using stdin with ZeroMQ sockets, it's a neat mix.
>
> On Thu, Mar 13, 2014 at 10:39 PM, Michael Haberler <mail17 at mah.priv.at> wrote:
>>
>> Am 13.03.2014 um 22:24 schrieb Pieter Hintjens <ph at imatix.com>:
>>
>>> I think removing the check is fine. If socket=NULL and fd=0 is a valid
>>> combination, the code shouldn't treat it as an error. In any case this
>>> isn't documented behavior in any way, so you are free to change it.
>>
>>
>> thanks, PR sent
>>
>> here is the bonus gist conditional on this patch:  using libreadline in zloop
>>
>>   https://gist.github.com/mhaberler/9537478
>>
>> - Michael
>>
>>
>>> On Thu, Mar 13, 2014 at 9:09 PM, Michael Haberler <mail17 at mah.priv.at> wrote:
>>>> trying to use zloop for reading with libreadline on stdin, while handling other events
>>>>
>>>> this doesnt work because fd 0 is considered invalid in zloop.c:328 ; if I disable the check that works just fine
>>>>
>>>> I see two ways to resolve the situation:
>>>>
>>>> - consider a zmq_pollitem with socket=NULL and fd=0 as valid, to mean: poll on fd 0
>>>> - explicitly set an invalid fd to -1, which is an API change
>>>>
>>>> I would prefer the first option - please advise
>>>>
>>>> - Michael
>>>>
>>>>
>>>> int
>>>> zloop_poller (zloop_t *self, zmq_pollitem_t *item, zloop_fn handler, void *arg)
>>>> {
>>>>    assert (self);
>>>>
>>>>    // suggestion: remove this test:
>>>>    if (!item->socket && !item->fd)
>>>>        return -1;
>>>> _______________________________________________
>>>> zeromq-dev mailing list
>>>> zeromq-dev at lists.zeromq.org
>>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>> _______________________________________________
>>> zeromq-dev mailing list
>>> zeromq-dev at lists.zeromq.org
>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev



-- 
Heinrich Hartmann

Mobile: +49 1525 363 8134
Web: heinrich-hartmann.net
Social: Google+ / Facebook



More information about the zeromq-dev mailing list