Simon Giesecke
5873894c83
Problem: wrong assertion macro used on Windows
...
Solution: use wsa_assert instead of errno_assert
2018-02-11 13:52:41 +01:00
Simon Giesecke
2f27bcd74b
Problem: assertion failure in poll_t::poll if timer_event retired a
...
pollset entry
Solution: clean up retired entries before poll
2018-02-11 13:49:26 +01:00
Simon Giesecke
a2af3d18cc
Problem: unittest_poller fails for poll_t
...
Solution: fixed behaviour in corner cases
2018-02-11 13:49:25 +01:00
Luca Boccassi
c33cb38af2
Merge pull request #2928 from eponsko/master
...
Add support for ZMQ_XPUB_NODROP on ZMQ_RADIO sockets
2018-02-09 17:15:47 +00:00
Pontus Sköldström
a57f7e3824
Add support for ZMQ_XPUB_NODROP on ZMQ_RADIO sockets
...
Solves issue #2927
2018-02-09 16:20:50 +01:00
Simon Giesecke
a5e763039d
Problem: use of TCP loopback fastpath not available for user sockets
...
Solution: add socket option
2018-02-09 14:22:42 +01:00
sigiesec
490d76da2f
Problem: SIO_LOOPBACK_FAST_PATH not activated for signaler socket pair
...
Solution: activate SIO_LOOPBACK_FAST_PATH if available
See #2899
2018-02-09 13:50:40 +01:00
sigiesec
88d8c768d1
Problem: test_timers frequently fails on travis-ci
...
Solution: relaxed test assertions, based on the actual time passed,
instead of assuming that this equals to the time slept
2018-02-09 09:55:40 +01:00
Simon Giesecke
3baefc66ea
Problem: incomplete assertions around modifications of fd_entries vs.
...
load
Solution: add assertions, partially in debug build only, improved naming
2018-02-09 09:53:02 +01:00
Simon Giesecke
a1d55d0506
Problem: race conditions for options.linger ( #2910 )
...
* Problem: race conditions for options.linger
Solution: make options.linger atomic
2018-02-08 22:10:45 +00:00
Simon Giesecke
de0c669323
Problem: std::atomic not used on Visual C++ although it is available ( #2930 )
...
* Problem: std::atomic not used on Visual C++ although it is available
Solution: change conditional compilation to recognize _MSC_VER
2018-02-08 22:01:02 +00:00
Luca Boccassi
cdfc6bb8b3
Merge pull request #2924 from sigiesec/tcp-cleanup
...
Problem: duplicated code, redundant member handle_valid, asymmetry between tcp_connecter and tcp_listener
2018-02-08 21:57:46 +00:00
Luca Boccassi
9fbd125b41
Merge pull request #2917 from ZMQers/thread-safe-simplification
...
Problem: code duplication and unnecessary nesting around ZMQ_THREAD_SAFE querying
2018-02-08 21:57:06 +00:00
sigiesec
147fe9ed77
Problem: code duplication and unnecessary nesting around ZMQ_THREAD_SAFE
...
querying
Solution: remove code duplication and rearrange conditions
2018-02-08 22:54:30 +01:00
Luca Boccassi
cb9ccfa154
Merge pull request #2921 from sigiesec/mechanism-cleanup
...
Problem: code style issues in mechanism_t and socket_base_t
2018-02-08 21:53:14 +00:00
Luca Boccassi
2e849a4d60
Merge pull request #2913 from ZMQers/add-const
...
Problem: several fields are non-const without need
2018-02-08 21:47:21 +00:00
Simon Giesecke
2c2ea82789
Problem: duplicated code, redundant member handle_valid, asymmetry between
...
tcp_connecter and tcp_listener
Solution: remove duplication and redundant member, align handling of
handle in tcp_connecter and tcp_listener
2018-02-08 22:20:01 +01:00
sigiesec
06d805ff82
Problem: unnecessary complex operations in socket_base_t::term_endpoint
...
Solution: use simpler operations, construct std::string only once
2018-02-08 22:19:54 +01:00
sigiesec
9a6993adce
Problem: several code style issues in mechanism_t: code and data duplication,
...
unnecessary construction of temporary std::string
Solution: removed duplication, removed construction of std::string
2018-02-08 22:19:54 +01:00
sigiesec
368eff9ecb
Problem: several fields are non-const without need
...
Solution: add const where easily possible
2018-02-08 22:17:03 +01:00
sigiesec
5b510656d0
Problem: unreachable code around socket_base_t::add/remove_signaler
...
Solution: replaced by assertion
2018-02-08 22:16:30 +01:00
sigiesec
41f459e1dc
Problem: formatting inconsistent
...
Solution: applied clang-format
2018-02-02 15:47:43 +01:00
Pontus Sköldström
542fe67f25
Problem: ZMQ_DISH triggers assert when hitting the watermark(?)
...
Solves issue #2907 by checking whether the msg already has a group
2018-02-02 14:01:45 +01:00
sigiesec
206c832167
Problem: in case of exhausted resources on creation of a context, assertions are triggered
...
Solution: signal error to caller, and apply appropriate cleanup
2018-01-31 20:53:06 +01:00
Simon Giesecke
7488be61c2
Problem: add_fd might be called with fd_ == retired_fd
...
Solution: add assertion
2018-01-25 16:03:43 +01:00
Bill Torpey
ec05166545
prevent duplicate connections from PUB sockets also (see https://github.com/zeromq/libzmq/issues/788 )
2017-12-29 14:36:59 -05:00
evoskuil
9622984241
Problem: vc++ 11.0 (vs 2012) compile fails on move semantics.
2017-12-14 14:58:02 -08:00
evoskuil
8d78e08f71
Problem: fn pointers are not bool (vc++ warning C4550).
2017-12-14 12:47:38 -08:00
Jasper Lievisse Adriaanse
22b57f6f28
Problem: Build is broken on OpenBSD
...
Solution: re-instate block for OpenBSD erroneously removed in 9622a830
2017-12-14 09:47:49 +01:00
Luca Boccassi
ac552ba448
Problem: accept4 not available on all platforms
...
Solution: check for availability in CMake and autoconf before using it
2017-11-18 11:33:53 +00:00
ccpaging
e8ad51e62f
Clean code for Visual Studio 2008 compiler
2017-11-16 14:09:13 +08:00
Rolf Timmermans
c8592dfbc3
Problem: REQ socket with ZMQ_REQ_RELAXED does not report ZMQ_POLLOUT when queried for events after first message.
...
Solution: Check for strictness before returning false if no reply has been received.
2017-11-08 09:55:14 +01:00
Anton Bärwald
630f6d6ae7
Problem: On OSX usleep() changes the errno value
...
Solution: Update errno value after calling usleep()
2017-11-02 16:01:11 +01:00
sigiesec
f9d7eea6f9
Problem: code duplication
...
Solution: unified Windows & non-Windows code further
2017-10-26 11:05:39 +02:00
sigiesec
e7817ad38d
Problem: code duplication
...
Solution: reduced code duplication by introducing local variables and
new function trigger_events
2017-10-26 10:47:05 +02:00
sigiesec
37914d1be2
Problem: get_fd_family call is expensive and called frequently for the
...
same fds
Solution: cache results of get_fd_family
2017-10-26 09:46:11 +02:00
sigiesec
cd32603c0e
Problem: wsa_events are initialized/destroyed within every loop
...
iteration even if not used
Solution: Move wsa_events closer to usage
2017-10-25 18:30:03 +02:00
f18m
2aa0e6fd4d
Change ZMQ_THREAD_AFFINITY to ZMQ_THREAD_AFFINITY_CPU_ADD/ZMQ_THREAD_AFFINITY_CPU_REMOVE. Avoid prefix thread names when no prefix was set.
2017-10-25 09:55:47 +02:00
Yann Diorcet
81327af557
Partial Windows XP support
2017-10-24 13:12:34 +02:00
Simon Giesecke
7ec58b279a
Problem: one missed optimization opportunity for blob_t map lookup
...
Solution: create referencing blob_t
2017-10-23 11:12:15 +02:00
Simon Giesecke
a4aceb272b
Problem: use of std::map::insert is inefficient
...
Solution: use std::map::emplace instead, where available
2017-10-22 17:15:00 +02:00
Simon Giesecke
0897b3e07b
Problem: excessive memory allocations around blob_t ( #2796 )
...
* Problem: excessive memory allocations around blob_t
Solution: redefine blob_t as a custom type, and use reference/move
semantics where possible
2017-10-21 12:19:51 +01:00
sigiesec
cfb2129557
Problem: comment before sndtimeo/rcvtimeo does not specify dimension
...
Solution: add "milliseconds"
2017-10-18 15:04:54 +02:00
f18m
f25cd6e7be
Background thread names ( #2784 )
...
* Add ZMQ_THREAD_NAME_PREFIX ctx option
2017-10-17 12:06:50 +01:00
f18m
bfbb4ff2e9
Background threads enhancements ( #2778 )
...
* Background thread scheduling
- add ZMQ_THREAD_AFFINITY ctx option; set all thread scheduling options
from the context of the secondary thread instead of using the main
process thread context!
- change ZMQ_THREAD_PRIORITY to support setting NICE of the background
thread when using SCHED_OTHER
2017-10-16 12:29:03 +01:00
Luca Boccassi
b6aee51691
Problem: strict ZAP protocol adherence is backward incompatible
...
Solution: add ZMQ_ZAP_ENFORCE_DOMAIN to hide backward incompatible
change and make it disabled by default.
In a future release that breaks API compatibility we can then switch
the default to enabled in order to achieve full RFC compatibility.
Fixes #2762
2017-10-09 17:48:33 +01:00
Luca Boccassi
50bddbaac9
Problem: dead code in options.hpp
...
Solution: remove unused zap_ipc_creds boolean variable
2017-10-09 13:52:56 +01:00
Luca Boccassi
e3ee55b191
Problem: missing indentation for UDP branch
...
Solution: fix it
2017-10-09 13:52:56 +01:00
Luca Boccassi
c8f3f8a5da
Problem: ambiguos bitwise ANDs in if statements
...
Solution: wrap bitwise ANDs in brackets as the static analyzer suggests
2017-10-09 13:52:56 +01:00
Luca Boccassi
7ad06f1449
Problem: IPC event_closed logs -1 as the FD
...
Solution: take a copy of the file descriptor before setting it to
retired_fd.
2017-10-06 09:53:59 +01:00