Age | Commit message (Collapse) | Author |
|
With the introduction of subscription forwarding, the first message
sent on a PUB socket using a unidirectional transport (e.g. PGM) is
always lost due to the "subscribe to all" being done asynchronously.
This patch fixes the problem and also refactors the code to have a
single point where the "subscribe to all" is performed.
Signed-off-by: Martin Lucina <martin@lucina.net>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
This tests checks whether TCP auto-reconnection mechanism
works as expected.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Timers are not longer identified by hard-wired IDs.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
poll_t and select_t polling mechanism convert fd into void*.
When fd 0 was converted NULL pointer resulted. Fixed.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
This is more consistent with adjacent add_fd and rm_fd functions.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Poller object is virtualised. You can access poller via its
base class (poller_base_t) instead of using poller_t which
was a typedef pointing to actual derived class.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.cpm>
|
|
Till now the selection process was implemented both
in autotools build system and in the code itself.
From now on, it's exclusively build system's taks to
choose the right polling mechanism.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Polling handle type was previously dependent on polling mechanism
used. Now it is void* in all cases. This patch is a first step
in the long way to separate the transports from the core library.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
When there are multiple subscribers connected to the same PUB socket and one
of them disconnects, one of the orhers loses one message. Fixed.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Staffan Gimåker <staffan@spotify.com>
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Iterator was checked although the item it was pointing to was erased.
Now it never happens.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Till now the "valid" tag of the socket was removed only after
the socket was properly deallocated by the reaper thread. That
allowed user to access it while it was in the process of being
deallocated. Now, the "valid" tag is removed as soon as zmq_close
is called.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
It was possible to open a new socket while the log socket was being shut down.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
This was a leftover from 0MQ/1.0 times when bindings were
packaged with the library, thus resulting in multiple
perf tests.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.cpm>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Sergey Matveychuk <sem33@yandex-team.ru>
Signed-off-by: Martin Sustrik <sustik@250bpm.com>
|
|
<sustrik@250bpm.com>
|
|
it."
Configure-time checking for features should not invoke any code.
It won't work for the case of cross-compilation.
This reverts commit 5d6abb9379c6860ca6864a02520e5f7443f0b2d6.
|
|
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
|
|
being non-zero.
Signed-off-by: Staffan Gimåker <staffan@spotify.com>
|
|
1. If the subscription is malformed, drop it silently.
2. Fixes a memory leak
Signed-off-by: Staffan Gimåker <staffan@spotify.com>
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Staffan Gimåker <staffan@spotify.com>
|
|
Signed-off-by: Staffan Gimåker <staffan@spotify.com>
|
|
Signed-off-by: Ivo Danihelka <ivo@danihelka.net>
|
|
Add the '-Ae' flag and check for gethrtime() on HPUX
Check if CLOCK_MONOTONIC defined before using it - if not, use
gethrtime() if it's available, otherwise fall back to the old
behavior.
Signed-off-by: AJ Lewis <aj.lewis@quantum.com>
|
|
This patch is an optimisation. So far, when there were no data
in the pipe, it was only next out_event that stopped the polling
for POLLOUT. Now, the polling is canceled immediately.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Opening any PGM socket gives this assertion. The problem is in
pgm_sender_t::plug() which is incorrectly testing the return value from
session::write().
Signed-off-by: Martin Lucina <martin@lucina.net>
|
|
This patch fixes the problem described in LIBZMQ-205. The assertion itself
is probably caused by previously queued POLLIN events arriving after POLLIN
has been disabled on the socket.
The following additional bugs have been fixed as part of debugging this
problem:
- pgm_receiver_t does not flush messages written to the session in all
cases which can lead to a stalled reader. Add calls to session->flush ()
in the appropriate places.
- ensure to restart polling when a pending message is flushed in
activate_in ().
Signed-off-by: Martin Lucina <martin@lucina.net>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|