Commit Graph

5248 Commits

Author SHA1 Message Date
WGH
eb0e0dda4e doc/zmq_socket.txt: clarify that ROUTER can be blocking 2016-10-03 23:39:34 +03:00
Luca Boccassi
88e4cff948 Merge pull request #2147 from goodfella/fix-zmq-poller-poll-return
Fix zmq poller poll return
2016-10-01 11:44:08 +01:00
Nick Guiffrida
ffdb44ad2c Fix zmq_poll return code assert in tests/test_radio_dish.cpp 2016-09-30 21:50:31 -07:00
Nick Guiffrida
1a2d58e4e7 Add #ifndef ZMQ_HAVE_WINDOWS guard around unistd.h include 2016-09-30 21:30:04 -07:00
Nick Guiffrida
f3de534897 Do not assign rc to zmq_poller_destroy in zmq_poller_poll
* Doing so was zmq_poller_poll to always return 0.
2016-09-30 21:10:25 -07:00
Nick Guiffrida
f46e45c263 Include unitstd.h in src/stream_engine.cpp for close system call 2016-09-30 21:10:05 -07:00
Luca Boccassi
6c1669371a Merge pull request #2145 from minrk/zmq-poll-repeat
allow duplicate entries in zmq_poller_poll
2016-09-29 15:36:55 +01:00
Min RK
fb5a04e21d allow duplicate entries in zmq_poller_poll
This should restore full compatibility with earlier zmq_poll behavior.

It complicates things a little bit, as collisions must be detected, and when collisions are found:

- event masks must be merged
- pollitems, events arrays are no longer co-ordered

Reverts the recent zmq_proxy patch to workaround the lack of repeat-item support in zmq_poll that is now fixed.
2016-09-29 16:33:02 +02:00
Luca Boccassi
ae0676e80d Merge pull request #2144 from minrk/fix-poller
Resolve issues with zmq_poll and zmq_poller working together
2016-09-29 15:07:18 +01:00
Min RK
310dafbc75 zmq_poll returns 0 on timeout
not -1, ETIMEDOUT like zmq_poller
2016-09-29 15:44:31 +02:00
Min RK
718608ce94 socket_poller::wait returns only triggered events
Return value is the number of events found. This also propagates to the return value of zmq_poller_wait_all.

zmq_poller_wait was only returning events on the first-registered socket.
2016-09-29 15:21:52 +02:00
Constantin Rack
872f1e5a9d Merge pull request #2143 from minrk/avoid-duplicate-poller-proxy
avoid passing duplicate entries to zmq_poll
2016-09-29 13:30:15 +02:00
Min RK
c636147c98 avoid duplicate entries in zmq_poll
zmq_poller doesn't allow a socket to appear twice
2016-09-29 12:59:53 +02:00
Luca Boccassi
b0df7f1f17 Merge pull request #2141 from minrk/heap-alloc-poll-events
heap-allocate events in zmq_poller_poll
2016-09-28 15:27:55 +01:00
Min RK
53fb120687 heap-allocate events in zmq_poller_poll
variable-size array allocation is not allowed by some compilers
2016-09-28 15:17:57 +02:00
Luca Boccassi
55930f5e42 Merge pull request #2140 from minrk/zmq_poll_poller
Support all sockets in zmq_poll
2016-09-28 13:00:20 +01:00
Doron Somech
c0b1114944 Merge pull request #2138 from minrk/darwin-clock
only define clock macros on darwin if not already defined
2016-09-28 14:54:25 +03:00
Doron Somech
91e121c9d3 Merge pull request #2139 from minrk/update-poll-based-on-poll
update socket_poller when ZMQ_POLL_BASED_ON_SELECT
2016-09-28 14:54:02 +03:00
Min RK
bdcaa935b9 zmq_poll calls zmq_poller if available
enables zmq_poll on threadsafe sockets only supported in zmq_poller (radio, dish, etc.)
2016-09-28 13:53:57 +02:00
Min RK
e50a987650 update socket_poller when ZMQ_POLL_BASED_ON_SELECT
previous patch updated only the branch for ZMQ_POLL_BASED_ON_POLL, causing failed builds on Windows.
2016-09-28 13:52:56 +02:00
Min RK
978c5c3499 only define clock macros on darwin if not already defined
clang from Xcode 8 has these already defined, causing duplicate macro warnings
2016-09-28 13:52:27 +02:00
Constantin Rack
c751899313 Merge pull request #2136 from bluca/copyright
Problem: Brocade has copyright but not in AUTHORS and RELICENSE
2016-09-28 05:49:56 +02:00
Constantin Rack
2768df845c Merge pull request #2135 from bluca/unbreak-pkg-config
Problem: pkg-config Requires.private is broken
2016-09-28 05:17:25 +02:00
Luca Boccassi
2204cb48dd
RELICENSE: Brocade Communications Systems Inc. MPLv2 grant 2016-09-27 23:43:02 +01:00
Luca Boccassi
00239414b3
Problem: Brocade has copyright but not in AUTHORS
Solution: add it. Some of the work that I do happens during working
hours and hence the copyright belongs to my employer, Brocade
Communications Systems Inc. Note this in the AUTHORS file.
2016-09-27 23:42:52 +01:00
Luca Boccassi
06d810b4c9 Problem: pkg-config Requires.private is broken
Solution: use only Libs.private to avoid breaking application builds.
Even though Requires.private are supposed to be parsed only if
pkg-config is called with --static, the --cflags parameter is enough
to trigger the parsing, causing build failures for applications that
do not (and should not) depend on libzmq's dependencies.
2016-09-27 23:34:35 +01:00
Constantin Rack
34a1292e96 Merge pull request #2134 from bluca/pkg-config-static
Problem: pkgconfig file does not support static link
2016-09-27 22:39:55 +02:00
Luca Boccassi
6d9411607d Problem: pkgconfig file does not support static link
Solution: add dependencies, if necessary, to the .private Libs and
Requires field of the pkgconfig file at build time.
This way pkg-config --static --libs libzmq will correctly print
dependencies if they were used to build the static libzmq.a library.
2016-09-27 18:39:07 +01:00
Doron Somech
131a2627b9 Merge pull request #2131 from minrk/poller-static-2
pass through poller events
2016-09-27 16:00:37 +03:00
Min RK
ec750732d4 pass through poller events
instead of allocating a new, identical array and copying the data.

This is only safe while zmq_poller_event_t and zmq::socket_poller_t::event_t are the same struct,
which they presumably will remain.
2016-09-27 14:59:07 +02:00
Doron Somech
06aeb47d73 Merge pull request #2130 from minrk/poller-static-alloc
add n_events argument to zmq_poller_wait_all
2016-09-27 15:39:33 +03:00
Min RK
de7fc1fcf8 add n_events argument to zmq_poller_wait_all
avoids unnecessary heap allocations, races on the number of items
2016-09-27 14:37:52 +02:00
Doron Somech
187b4bff48 Merge pull request #2128 from minrk/multi-event-poller
Problem: zmq_poller only signals one event
2016-09-27 14:45:03 +03:00
Min RK
2bc9796651 Problem: zmq_poller only signals one event
Solution: zmq_poller_wait_all signals all events

allows signaling multiple events with one call to zmq_poller_wait_all
rather than emitting only one event.

this prepares for zmq_poll being based on zmq_poller,
which requires events for all sockets rather than just one.
2016-09-27 13:39:16 +02:00
Laughing
555a087763 fix bugs of the pollset (#2127)
* fix bugs of the pollset

1. extend 'fd_table' when fd_ is greater or equal than the size of 'fd_table';
2. delete specific fd from pollset before reset pollin or pollout according the description of AIX document

* fix bugs of the pollset

edit error. remove extra spaces and paste fault

* fix bugs of pollset

remove character '-' at the end line.
2016-09-27 08:44:54 +01:00
Constantin Rack
113d3ffc0b Merge pull request #2126 from paddor/master
fix markup syntax on zmq_tipc(7) page
2016-09-25 19:23:36 +02:00
Patrik Wenger
7e07ff3e5b fix markup syntax on zmq_tipc(7) page 2016-09-25 19:19:13 +02:00
Luca Boccassi
2e55bc5838 Merge pull request #2125 from GreatFruitOmsk/master
Fix fd_entry may reference invalid object.
2016-09-25 11:07:26 +01:00
Ilya Kulakov
06614a394d Fix fd_entry may reference invalid object.
fd_entries (std::vector) can reallocate underlying storage
which will render reference invalid.
2016-09-24 21:17:32 -07:00
Constantin Rack
22dac19429 Merge pull request #2123 from bluca/dealer_router_async
Problem: zmq_ctx_term asserts with connect-before-bind and sockets with identity over inproc transport
2016-09-24 20:56:19 +02:00
Luca Boccassi
ab5c8c8dea Problem: zmq_ctx_term segfaults with too many pending inproc connects
Solution: add a zmq_assert to check if the ephemeral sockets created
to drain the queue of pending inproc connecting sockets was allocated
successfully.
2016-09-24 18:59:29 +01:00
Luca Boccassi
fab846a5e5 Problem: zmq_ctx_term asserts with connect-before-bind and sockets with identity over inproc transport
Solution: check if the connecting inproc socket has been closed
before trying to send the identity.
Otherwise the pipe will be in waiting_for_delimiter state causing
writes to fail and the connect to assert when the context is being
torn down and the pending inproc connects are resolved.
Add test case that covers this behaviour.
2016-09-24 18:59:29 +01:00
Luca Boccassi
25402335fd Problem: no bind-after-connect TCP test
Solution: add one to increase coverage
2016-09-24 18:27:19 +01:00
Luca Boccassi
55244935c2 Merge pull request #2122 from gena-moscow/master
Problem: Pub socket crashes on client disconnect.
2016-09-23 13:53:55 +01:00
Gennady Makovetski
2e3888dd45 Problem: Pub socket crashes on client disconnect. family_entry.fd_entries [i] is modified in zmq::select_t::rm_fd()
Solution: do not copy family_entry.fd_entries [i]
2016-09-23 15:26:36 +03:00
Constantin Rack
e30ab69738 Merge pull request #2121 from paddor/master
Problem: documentation markup unrecognized
2016-09-21 21:50:20 +02:00
Patrik Wenger
18e0451092 Problem: documentation markup unrecognized
The effect can be seen on http://api.zeromq.org/4-2:zmq-getsockopt at
options ZMQ_USE_FD and ZMQ_RATE.

Solution: fix length of squiggly line under option title
2016-09-21 21:39:01 +02:00
Luca Boccassi
bacba21ef2 Merge pull request #2120 from hnwyllmm/pollset
Pollset-change the position of `pollset`
2016-09-21 07:57:36 +01:00
hnwyllmm@126.com
bdf887fd74 move macro define ZMQ_USE_POLLSET to the position between ZMQ_USE_DEVPOLL and ZMQ_USE_POLL 2016-09-21 11:41:35 +08:00
hnwyllmm@126.com
55442699ef replace tabs with space 2016-09-21 11:28:32 +08:00