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>
|
|
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>
|
|
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: 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: Sergey Matveychuk <sem33@yandex-team.ru>
Signed-off-by: Martin Sustrik <sustik@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>
|
|
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>
|
|
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>
|
|
When (X)SUB socket is being shut down there may be pending
outbound subscription commands in the pipes. In such case
we want to close the socket immediately instead of waiting
for the commands to be sent.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
When polling on XREP socket in incoming message part was prefetched,
but not the identity of sender. The problem is fixed by this patch.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
These include configurations for both Win32 and x64 platforms. All project
settings have been normalised in property sheets (the ".props" files under
builds/msvc/properties) to simplify maintenance. Build artefacts are all
generated in platform-specific subfolders of bin, lib and obj directories.
Also enables the use of precompiled headers with MSVC10.
This significantly reduces the time required to compile libzmq with Visual
Studio on Windows. It should have no impact on other platforms.
Signed-off-by: Stuart Webster <sw_webster@hotmail.com>
|
|
failed: s == retired_fd (ipc_connecter.cpp:174), as reported in LIBZMQ-294.
This patch fixes the bug, and also an identical problem in tcp_connecter
which has not hit people since TCP connect() usually completes via the
asynchronous code path (poll, out_event).
Signed-off-by: Martin Lucina <martin@lucina.net>
|
|
the sysadmin, which could previously cause long hangs for instance in
zmq_poll.
Signed-off-by: Mika Fischer <mika.fischer@zoopnet.de>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
The missing tokens broke the build if you used -Werror -Wundef
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
wq:
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|