I made a pull request to remove the poller field, fd is used instead. Also I renamed the new poller type to pollfd.
https://github.com/zeromq/libzmq/pull/1534 I also updated the gist on how to use polling on thread safe sockets: https://gist.github.com/somdoron/902169bf115d3534bd24 On Mon, Aug 17, 2015 at 2:16 PM, Pieter Hintjens <[email protected]> wrote: > "client id" suggests that it's the ID of the client. Always confusing, > such relative terms. > > Consistency across the ZeroMQ universe would be useful here IMO. > > On Mon, Aug 17, 2015 at 1:07 PM, Doron Somech <[email protected]> wrote: > > I followed the zproto naming, I actually think that for the server-client > > context "client id" might be better... > > > > On Mon, Aug 17, 2015 at 1:36 PM, Pieter Hintjens <[email protected]> wrote: > >> > >> +1 for this and for using "routing id" instead of "identity"... it's a > >> change I'd like to make everywhere, deprecating the old (misleading) > >> name. > >> > >> On Mon, Aug 17, 2015 at 11:04 AM, Doron Somech <[email protected]> > wrote: > >> > No problem, I also agree as I think we need minimal change. > >> > > >> > I made the change: > >> > > >> > > https://github.com/somdoron/libzmq/commit/5bae6911afba90de42b9fd21315f6d702e1bb2c6 > >> > > >> > I will wait with the PR until other will weigh in. > >> > > >> > Also I think the poller name is not great, I prefer another but didn't > >> > come > >> > up with a good one, few alternatives: > >> > * signaler - it is the internal name in libzmq > >> > * efd - for event fd > >> > * polling_fd > >> > * poll_fd > >> > * pollfd > >> > > >> > What do you think? > >> > > >> > > >> > > >> > > >> > > >> > On Mon, Aug 17, 2015 at 10:29 AM, KIU Shueng Chuan < > [email protected]> > >> > wrote: > >> >> > >> >> The structure of zmq_pollitem_t is part of the public api and abi. > All > >> >> existing programs would require a recompile. > >> >> > >> >> Perhaps others would like to weigh in on this? > >> >> > >> >> On 17 Aug 2015 14:17, "Doron Somech" <[email protected]> wrote: > >> >>> > >> >>> 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 > >> >>> > >> >> > >> >> _______________________________________________ > >> >> 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
