Do you think it would be worthwhile to preserve ABI compatibility of the zmq_pollitem_t structure?
Perhaps for threadsafe sockets, the user could extract the fd of the poller object and populate the pollitem fd field himself? e.g. socket!=NULL && fd!=0 ==> threadsafe zmq socket socket!=NULL && fd==0 ==> regular zmq socket socket==NULL ==> regular TCP socket (or any fd on unix) On Sun, Aug 16, 2015 at 11:06 PM, Doron Somech <[email protected]> wrote: > so, I made a pull request to fix the issue, moving field to the end of > struct: > > https://github.com/zeromq/libzmq/pull/1526 > > On Sun, Aug 16, 2015 at 5:54 PM, Doron Somech <[email protected]> wrote: > >> I will try to fix that... >> >> On Sun, Aug 16, 2015 at 5:43 PM, KIU Shueng Chuan <[email protected]> >> wrote: >> >>> Hello, the new definition for zmq_pollitem_t would break code like the >>> following: >>> >>> zmq_pollitem_t pollitems [] = { >>> { zsock, 0, ZMQ_POLLIN, 0 }, >>> { NULL, fd, ZMQ_POLLIN, 0 } >>> }; >>> On 16 Aug 2015 19:10, "Doron Somech" <[email protected]> wrote: >>> >>>> So I made a pull request which add polling on multiple sockets: >>>> >>>> https://github.com/zeromq/libzmq/pull/1525 >>>> >>>> Polling on thread safe sockets is a little different then regular >>>> socket, take a look at the gist: >>>> >>>> https://gist.github.com/somdoron/902169bf115d3534bd24 >>>> >>>> Next is making a pull request to CZMQ to use the new ability. >>>> >>>> >>>> On Sun, Aug 16, 2015 at 12:53 AM, Brian Knox <[email protected]> >>>> wrote: >>>> >>>>> Makes sense to me! The API is close enough to the other poller >>>>> implementations that there's no surprises. >>>>> >>>>> Cheers! >>>>> Brian >>>>> >>>>> On Sat, Aug 15, 2015 at 5:21 PM, Doron Somech <[email protected]> >>>>> wrote: >>>>> >>>>>> 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 >>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> 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
