Doron Somech
93da6763b0
problem: ZMQ_HEARTBEAT is not useful without sending an hello message
...
When using ZMQ_HEARTBEAT one still needs to implement application-level heartbeat in order to know when to send a hello message.
For example, with the majordomo protocol, the worker needs to send a READY message when connecting to a broker. If the connection to the broker drops, and the heartbeat recognizes it the worker won't know about it and won't send the READY msg.
To solve that, the majordomo worker still has to implement heartbeat. With this new option, whenever the connection drops and reconnects the hello message will be sent, greatly simplify the majordomo protocol, as now READY and HEARTBEAT can be handled by zeromq.
2020-04-17 14:54:58 +03:00
Simon Giesecke
41e3f14d6a
Problem: ptr/ref parameters and local variables are non-const but never modified
...
Solution: add const
2020-01-27 10:38:00 +01:00
Simon Giesecke
f8f7913737
Problem: irregular loop conditions
...
Solution: use standard loop constructs and optimize some loops
2020-01-27 10:38:00 +01:00
Simon Giesecke
36d265ee7d
Problem: redundant parentheses in return statements
...
Solution: remove them
2019-03-01 05:46:10 -05:00
Simon Giesecke
0c363fbb76
Problem: argument is unnecessarily copied
...
Solution: move instead
2019-03-01 05:46:10 -05:00
Luca Boccassi
feadf6d40f
Problem: cannot monitor state of queues at runtime
...
Solution: add API and ZMQ_EVENT_PIPES_STATS event which generates 2
values, one for the egress and one for the ingress pipes respectively.
Refactor the events code to be able to send multiple values.
2019-02-10 16:33:26 +00:00
Simon Giesecke
01371398e9
Problem: monitor events are unversioned
...
Solution: add monitor event socket option
2019-02-02 15:33:27 +01:00
Bunjevacki, Jovan
f5d1d5d1af
Problem: Use of pipe_t after free in zmq::socket_base_t::term_endpoint(). Issue #3245 .
...
Solution: When pipe_t is freed (terminated) remove it from _endpoints member of zmq::socket_base_t. Resolves issue #3245 .
2018-10-30 14:12:29 +01:00
Simon Giesecke
3455be144d
Problem: code duplication around sending of routing id
...
Solution: extract functionality into send_routing_id
2018-08-15 14:46:21 +02:00
Simon Giesecke
da30ff7d3d
Problem: unused get_credential methods and associated fields
...
Solution: remove them
2018-08-13 15:22:18 +02:00
Simon Giesecke
bbae67df89
Code style improvements
2018-08-10 15:36:31 +02:00
Simon Giesecke
46ed0920b2
Various code style improvements
2018-08-09 18:27:01 +02:00
Simon Giesecke
be81dcd4d3
Use std::min/max where possible
2018-08-09 12:53:32 +02:00
Simon Giesecke
e3c73d9881
Problem: inconsistent naming style for private data members, conflicts with naming of local variables and member functions
...
Solution: apply and check _lower_case naming style for private data members
2018-05-27 13:24:07 +02:00
Simon Giesecke
12a97bb769
Problem: redundant else after return
...
Solution: remove else
2018-05-26 09:34:45 +02:00
Simon Giesecke
eacc805646
Problem: complex unnecessary ternary expressions
...
Solution: simplify to comparison against 0
2018-05-26 09:34:44 +02:00
Simon Giesecke
4e616f30dd
Problem: C-style casts used
...
Solution: replace by C++-style casts
2018-05-18 17:04:01 +02:00
Simon Giesecke
9da0c6d62f
Problem: goto jumping backwards
...
Solution: replace by for loop
2018-05-18 14:34:43 +02:00
sigiesec
41f459e1dc
Problem: formatting inconsistent
...
Solution: applied clang-format
2018-02-02 15:47:43 +01: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
41bae55af7
Problem: inconsistent naming related to routing ids
...
Solution: renamed routing_id fields in pipe_t, renamed ZMQ_CONNECT_RID to ZMQ_CONNECT_ROUTING_ID
2017-09-19 17:53:53 +02:00
sigiesec
9e7507b38b
Problem: term "identity" is confusing
...
Solution: replace by "routing id"
2017-09-19 17:53:44 +02:00
Doron Somech
af03241dcb
Revert "Problem: term "identity" is confusing"
2017-09-07 15:47:43 +03:00
sigiesec
e00131dd43
Problem: inconsistent naming related to routing ids
...
Solution: renamed routing_id fields in pipe_t, renamed ZMQ_CONNECT_RID to ZMQ_CONNECT_ROUTING_ID
2017-09-07 10:33:13 +02:00
sigiesec
1daf83079a
Problem: term "identity" is confusing
...
Solution: replace by "routing id"
2017-09-06 17:45:56 +02:00
bjovke
69355730a4
Problem: intermittent memory leak for req/rep send/recv. #2602 Solution: memory leak fixed.
2017-06-27 20:15:08 +02:00
laplaceyang
107f2441d5
Problem: Thread-safe solution for modify hwm of pipe
...
Solution: where change pipe hwm, send a command (new type pipe_hwm) to peer, so peer pipe can modify hwm thread-safely
2017-01-11 10:49:54 +08:00
Luca Boccassi
edc770d680
Problem: HWM always boosted by 1
...
Solution: initialise *hwmboost to -1 instead of 1, and use it only if
it's >= 0. The socket option code checks anyway that the
user-provided value is >= 0 so there is no risk of clashing. The
documentation also specifies that it has to be >= 0.
2017-01-10 11:40:14 +00:00
Luca Boccassi
9f1ba60f50
Problem: modifying pipe from different thread is not safe
...
Solution: revert change from #2299 to avoid bugs while we look for an
alternative and thread-safe solution
2017-01-10 11:38:02 +00:00
laplaceyang
5adcb83509
Problem: set hwm after connect lead to infinite hwm
2017-01-09 12:34:40 +08:00
Constantin Rack
022cf2aeaa
Problem: source code contains tabs
...
Solution: replace tabes with spaces
2016-09-17 08:44:00 +02:00
Luca Boccassi
d4c0716473
Problem: indentation should be 4 spaces, no tabs
...
Solution: fix it
2016-02-21 23:16:44 +00:00
Osiris
b3d5fa63a0
Problem: Several problems found by Coverity Static Analyzer
...
Solution: The Coverity Static Code Analyzer was used on libzmq code and found
many issues with uninitialized member variables, some redefinition of variables
hidding previous instances of same variable name and a couple of functions
where return values were not checked, even though all other occurrences were
checked (e.g. init_size() return).
2016-02-21 15:49:47 -06:00
Osiris
4a5af9d58b
Problem: Precompiled headers not being used
...
Solution: Phase I - make precompiled.hpp be first file included in every source file
2016-02-18 10:56:52 -06:00
Constantin Rack
a539b0c6e8
Problem: copyright year is still 2015
...
Solution: update to 2016
2016-01-28 15:07:31 +01:00
Fedor Sheremetyev
bad93c536a
Set LWM to half of HWL.
...
This reduces chances of race between writer deactivation and activation.
Reader sends activation command to writer when number or messages is
multiple of LWM. In situation with high throughput (millions of messages
per second) and correspondingly large HWM (e.g. 10M) the difference
between HWM needs to be large enough - so that activation command is
received before pipe becomes full.
2015-11-24 17:33:38 +00:00
Constantin Rack
e4c06bef18
Problem: check_hwm() has different semantic of 'full'
2015-09-25 11:56:54 +02:00
Constantin Rack
f1358c1243
Problem: duplicate code for hwm check
2015-09-25 11:24:48 +02:00
Constantin Rack
bd923f0fbb
Problem: some comments contain typos
2015-09-06 18:46:32 +02:00
Joe Eli McIlvain
33419425eb
Problem: Private/internal macros defined in public header.
...
Solution: Move the macros to a private header.
2015-08-21 16:12:22 -07:00
Joe Eli McIlvain
61217a2686
Problem: Source files contain mixed tabs and spaces.
...
Solution: Convert to spaces and remove trailing whitespace in these files.
2015-08-20 07:46:34 -07:00
reza.ebrahimi
1621c25ef0
define a macro for heap object deletion in a unified manner (related to issue #1524 )
2015-08-17 00:35:11 +04:30
Richard Newton
dc949624e1
Handle infinite hwms properly
2015-06-05 19:06:36 +01:00
Richard Newton
15eecf4cf4
Update high water marking to allow changing high water mark after connection established.
2015-06-05 17:14:55 +01:00
Pieter Hintjens
8620c3e032
Problem: source file headers are somewhat confusing about LGPLv3
...
Of course people still "can" distributed the sources under the
LGPLv3. However we provide COPYING.LESSER with additional grants.
Solution: specify these grants in the header of each source file.
2015-06-02 22:33:55 +02:00
Martin Hurton
5ed6ac60e2
Adjust number of sent messages on hiccups
...
Not adjusting the sent message count may lead to situation when SUB
socket does not forward its subscriptions.
2015-02-19 21:47:26 +01:00
somdoron
5632b57b4a
adds server socket type and routing id to msg
2015-02-02 01:17:37 +02:00
Pieter Hintjens
94d9a4ffdf
Problem: copyright statements are out of date
...
Solution: update for 2015
Fixes #1320
2015-01-22 10:32:37 +01:00
Thomas Rodgers
7c0a644625
Remove of ZMQ_IDENTITY_FD socket option
...
Revert "linking fd to pipe identity via socket option"
This reverts commit fe3e8c5c70
.
Conflicts:
include/zmq.h
src/pipe.hpp
src/session_base.cpp
2015-01-09 17:28:50 -06:00
Sergey M․
76d86c3fc3
Fix some typos
2014-10-17 04:10:33 +07:00