Possibly you have requirements that makes you stick to a Router-Router
architecture. Otherwise, PUB-SUB is what you need.
As far as I have understood libzmq, with a R-R and a peer that
disconnects as a normal behaviour, your messages will accumulate in the
remaining node and will not be dropped.
For your specific blocking problem, have you tried with a poller ?
Hope it helps (but I am only a 0MQ beginner).
Cheers,
Laurent.
Le 25/07/2013 23:15, Yauheni Baltouski a écrit :
Hi,
I'm using czmq for building small router application, so I'm using
ROUTER-ROUTER
connection for dynamic connection and send/recv mesages over it.
All looks like working fine (as it possible for R-to-R case :), but
I'm in stuck
with sending message when peer disconnected (it is expected behavior).
So I want to continue processing, but zmsg_send is blocked with such
backtrace:
#0 0xb7fdd424 in __kernel_vsyscall ()
#1 0xb7e89690 in __GI___poll (fds=0xbfffee18, nfds=1, timeout=-1) at
../sysdeps/unix/sysv/linux/poll.c:87
#2 0xb7f9b618 in zmq::signaler_t::wait (this=0x80529d0, timeout_=-1)
at signaler.cpp:145
#3 0xb7f8f7e8 in zmq::mailbox_t::recv (this=0x80529a0,
cmd_=0xbfffeeb0, timeout_=-1) at mailbox.cpp:69
#4 0xb7f9c85d in zmq::socket_base_t::process_commands
(this=0x80527b8, timeout_=-1, throttle_=false)
at socket_base.cpp:823
#5 0xb7f9cab0 in zmq::socket_base_t::send (this=0x80527b8,
msg_=0x8077998, flags_=2) at socket_base.cpp:648
#6 0xb7fae380 in s_sendmsg (s_=0x80527b8, msg_=0x8077998, flags_=2)
at zmq.cpp:337
#7 0xb7fae44b in zmq_sendmsg (s_=0x80527b8, msg_=0x8077998, flags_=2)
at zmq.cpp:346
#8 0xb7f5af50 in zframe_send (self_p=0xbffff00c, zocket=0x80527b8,
flags=1) at zframe.c:211
#9 0xb7f5f6fe in zmsg_send (self_p=0xbffff048, zocket=0x80527b8) at
zmsg.c:133
#10 0x0804a9e5 in getModuleList_event_item (key=0x805ce80 "605dd619",
item=0x805e3d8, arg=0x8050038)
at modrouter.c:193
#11 0xb7f5c8ab in zhash_foreach (self=0x8050048, callback=0x804a780
<getModuleList_event_item>,
argument=0x8050038) at zhash.c:446
#12 0x0804aad5 in getModuleList_event (loop=0x805c398, item=0x0,
arg=0x8050038) at modrouter.c:215
#13 0xb7f5eecd in zloop_start (self=0x805c398) at zloop.c:370
#14 0x0804bc5c in main (argc=2, argv=0xbffff2c4) at modrouter.c:578
Can somebody tells me what's wrong and how to avoid it? May be I
should use
ZMQ_DONTWAIT flag, but it not implemented in CZMQ.
I want to send message independ of peer state, if it dead it should be
just dropped.
Thanks!
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev