Polling on multiple thread safe socket is a little bit different, because thread safe doesn't have a FD, so we need to create one for all thread safe sockets for each thread before calling the zmq_poll.
So I want to make it very close to the current API, this what I have so far: https://gist.github.com/somdoron/902169bf115d3534bd24 zmq_poller_t is actually a FD, when added to the thread safe socket the socket will signal it once a command is ready, multiple sockets can use the same poller. When signalled the zmq_poll will check all sockets for events. What do you think? On Sat, Aug 15, 2015 at 5:54 PM, Brian Knox <[email protected]> wrote: > Doron - as a heads up, being able to poll multiple sockets from zpoller > would be of great interest to me (I use zpoller in goczmq quite a bit). > > Cheers, > Brian > > On Sat, Aug 15, 2015 at 3:48 AM, Doron Somech <[email protected]> wrote: > >> Andrew are you using CZMQ? which class do you use for multiple polling, >> zloop or zpoller? >> >> On Fri, Aug 14, 2015 at 10:36 PM, Andrew Simpson <[email protected]> >> wrote: >> >>> this sounds really excellent! I am building an application that would >>> greatly benefit from this over a standard Router/Dealer setup. The only >>> thing that will hold me back right now is the lack of polling on multiple >>> client/server sockets. I definitely need that. >>> >>> Good stuff! >>> >>> >>> >>> On Friday, August 14, 2015 9:09 AM, Doron Somech <[email protected]> >>> wrote: >>> >>> >>> >>> Hi All, >>> >>> I added server and client sockets support to CZMQ, you can take a look >>> at the change at the following pull request: >>> >>> https://github.com/zeromq/czmq/pull/1059 >>> >>> Server socket is like router socket except you don't have an identity >>> frame, each message also include routing id which is an int (vs byte >>> array). So each message coming from a server socket include a routing id >>> which can be retrieve by calling zframe_routing_id. When sending a message >>> you must set the routing id by calling zframe_set_routing_id. You can use >>> zframe_send_reply with both the destination frame and the source frame >>> (which include the routing id), the method copy the routing id from the >>> source frame to the destination frame and then send the message. >>> >>> Client socket is same as dealer socket. Client and Server can only talk >>> to each other. >>> >>> Following is a small example on how to use the new client and server >>> sockets: >>> https://gist.github.com/somdoron/542b74922f652d229566 >>> >>> Client and server socket are thread safe (currently only support single >>> frame messages but that might change, I think) so if your protocol is >>> single frame you can use the server and client sockets from multiple >>> threads. >>> >>> Polling on multiple client or server sockets is not supported yet. >>> >>> In the coming week I plan to also add zproto support and complete the >>> polling on multiple sockets. >>> >>> Doron >>> >>> >>> _______________________________________________ >>> 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 >>> >>> >> >> _______________________________________________ >> 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 > >
_______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
