Arun,

>        I didnt really mean the API differences (which as you point out, 
> differ only by a loop). However, as i explained, i have to use this same 
> socket for sending too. Then the code becomes 
> queue<msg_t> outgoing queue;
> void recv_thread_routine ()
> {
>    socket_t s (ctx, ZMQ_SUB);
>    s.connect (...);
>    
>    while (true) {
>        message_t msg;
>        s.recv (&msg);
>        callback (msg);
>        acquire lock on outgoingqueue then  if (outgoingQueue not empty) 
> dequeue and send contents()
>    }
> }
> 
> Is this the only design possible?

The above won't work. You can't send messages to SUB socket.

However, if you have a bi-directional socket (such as P2P), you can poll 
for IN & OUT and do the send/recv depending on the result.

Martin
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to