Age | Commit message (Collapse) | Author |
|
The timeout should be int. For historical reasons, however,
it is defined as long. To fix the problem the value is
checked in the runtime to assure it is not larger than INT_MAX.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
It doesn't play well with multipart messages.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
The relationship of these two classes was 1:1.
Thus one of them was obsolete.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
The inspiration for this re-write came form John Skaller's
patch. Adding him to Credits section of the AUTHORS file.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
zmq_close() cannot be synchronised even though ZMQ_REENTRANT is set.
It's user's responsibility not to invoke the socket from another
thread once zmq_close() have been called.
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>
|
|
To implement context options properly, initialisation of context
is postponed till creation of the first socket. In the meantime
it is possible to set socket options.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.cpm>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.cpm>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Invalid handle is now specified as handle == NULL
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
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>
|