A little nasty but will work, I already have the zmq_poller_get_fd method (right now it is not public). I will make the change.
What disadvantage do you see to the change of the structure? On Mon, Aug 17, 2015 at 6:11 AM, KIU Shueng Chuan <[email protected]> wrote: > 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 > >
_______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
