summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2011-02-09Initial implementation of reaper thread.Martin Sustrik
Reaper thread destroys the socket asynchronously. zmq_term() can be interrupted by a signal (EINTR). zmq_socket() will return ETERM after zmq_term() was called. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-02-08max_sockets honoured preciselyMartin Sustrik
The internal log socket was subtracted from the number of available sockets. So, if max_sockets was set to 100, you could create only 99 sockets. Fixed. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-02-08zmq_poll with no fds behaves decentlyMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-02-03Don't use RLIMIT_NOFILES in devpoll_t.Martin Sustrik
The patch allows for running 0MQ on Solaris and HP-UX even though ulimit for max number of file descriptors is set to unlimited. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-02-03RLIMIT_NOFILE not used in poll_t anymoreMartin Sustrik
The problem was that RLIMIT_NOFILE can be set to RLIM_INIFINITY (and that appears to be default on AIX) which caused 0MQ to fail. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-28Fixed the problem of subscription forwarding and PGM interactionMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-26ZMQ_RECONNECT_IVL_MAX socket option addedThijs Terlouw
It allows for exponential back-off strategy when reconnecting. Signed-off-by: Thijs Terlouw <thijsterlouw@gmail.com>
2011-01-20Remove unnecessary visibility pragmasMikko Koppanen
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2011-01-20Fix handle connection reset during session initDhammika Pathirana
Patch to handle nmap version probes. Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>
2011-01-18Fix cppcheck warnings: Prefer prefix ++/-- operators for non-primitive types.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-17Cancel pending timers when decoder for PGM stallsSteven McCoy
Otherwise the timer event can raise an input event causing assertion on unprocessed data. Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
2011-01-14Fair queueing of subscriptions added to XPUB socketMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-14XSUB socket has a subscription distributorMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-14'message distribution mechanism' separated from XPUB socketMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-13Make cppcheck not complain about "'operator=' should return something"Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-12Support dynamic generation of C preprocessor definitions for PGM rather than ↵Neale Ferguson
hardcoding them. Signed-off-by: Neale Ferguson <neale@sinenomine.net>
2011-01-10Size of inproc hwm and swap is sum of peers' hwms and swapsMartin Sustrik
The meat of the patch was contributed by Douglas Creager. Martin Sustrik implemented storing peer options in inproc endpoint repository. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-07Fix pipe writer terminationDhammika Pathirana
Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>
2011-01-07Disable sending messages on SUB socketMartin Sustrik
The ability was inherited from XSUB socket. Now it's properly disabled. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-05Return ETERM from getsockopt(ZMQ_EVETS) if zmq_term() was calledMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-03sunos/gcc3 compilation issue fixedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-12-20Yet one more fix for oversized messages.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-12-20Fix the segfault when over-sized message is rejected.Martin Sustrik
The in_progress message inside of decoder was left uninitialised in such a case. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-12-17unplugged engine tries to manipulate the pollset -- fixedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-12-17fix race condition in session initDhammika Pathirana
Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>
2010-12-15Fixes assertion on pipe.cpp:237 when swap fills up.Mikko Koppanen
Fixes swap::full () functionality Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2010-12-15Remove assertions from devicesMikko Koppanen
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2010-12-13add basic uri validationsDhammika Pathirana
Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>
2010-12-13fix overwriting errno on bind failureDhammika Pathirana
Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>
2010-12-09Added Recovery Interval in MillisecondsBob Beaty
For very high-speed message systems, the memory used for recovery can get to be very large. The corrent limitation on that reduction is the ZMQ_RECOVERY_IVL of 1 sec. I added in an additional option ZMQ_RECOVERY_IVL_MSEC, which is the Recovery Interval in milliseconds. If used, this will override the previous one, and allow you to set a sub-second recovery interval. If not set, the default behavior is to use ZMQ_RECOVERY_IVL. Signed-off-by: Bob Beaty <rbeaty@peak6.com>
2010-12-06All devices conflated into a single implementation.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-12-06options.type correctly set for PUB/SUB/XPUB/XSUBMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-12-05XSUB accepts (un)subscriptions in form of messages.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-12-04XPUB and XSUB socket types added.Martin Sustrik
These are just placeholders. At the moment XPUB behaves th same as PUB and XSUB as SUB. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-12-01Merge branch 'maint'Martin Sustrik
* maint: Remove unnecessary cast in kevent_delete Conflicts: src/kqueue.cpp Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-12-01Remove unnecessary cast in kevent_deleteMartin Lucina
Fixes the build on NetBSD where the compiler complains about casting NULL to (int). Signed-off-by: Martin Lucina <mato@kotelna.sk>
2010-11-29Fix thread thunker scope for MSVC.Steven McCoy
Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
2010-11-27Functions passed to pthread_create are declared as extern "C"Martin Sustrik
So far these were declared as C++ static functions which was incorrect and caused warnings with SunStudio. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-11-25Control symbol exports using -fvisibilityMartin Lucina
On systems using GCC 4.0 or newer which support symbol visibility in shared libraries, use -fvisibility=hidden and only export explict API functions defined in zmq.cpp. We do not enable -fvisibility on MinGW since this uses a separate mechanism (__declspec). Signed-off-by: Martin Lucina <mato@kotelna.sk>
2010-11-25Typo fixed in a comment.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-11-19Problem with blob_t initialisation fixed.Martin Sustrik
HP's version of STL doesn't allow for initialisation of basic_string (blob_t) using NULL pointer, while SGI's implementation is OK with that. Fixed. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-11-17Remove unnecessary conditionalMikko Koppanen
This conditional is unnecessary as BUILD_PGM can be negated in the test. Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2010-11-15Build refactoringMikko Koppanen
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2010-11-13Merge branch 'maint'Martin Sustrik
* maint: Couple of patches for AIX build
2010-11-13Couple of patches for AIX buildMartin Sustrik
- RAND_bytes function resides in crypto library - pollfd on AIX used 'reqevents' instead of events and 'retnevents' instead of 'revents' Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-11-12Fix a bug that zmq_poll's select backend spins when timeout=-1, due toChia-liang Kao
ptimeout not properly recalculated after first pass. Signed-off-by: Chia-liang Kao <clkao@clkao.org>
2010-11-12Merge branch 'maint'Martin Sustrik
* maint: Fix socket_t::recv() hang scenario where initial call to process_commands() eats signal Conflicts: src/socket_base.cpp
2010-11-12Fix socket_t::recv() hang scenario where initial call to process_commands() ↵Marc Rossi
eats signal Added block boolean var to second process_commands() invocation for blocking sockets instead of always using true. This prevents the process_commands() call from hanging when a message is received with an empty queue after the call to xrecv() but prior to the initial call to process_commands() invoked when ++ticks == inbound_poll_rate. Signed-off-by: Marc Rossi <mrossi19@gmail.com>
2010-11-06Coding style cleanup in mailbox.cppMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-11-05signaler renamed to mailboxMartin Sustrik
For historical reasons queue to transfer commands between threads was called 'signaler'. Given that it was used to pass commands rather than signals it was renamed to 'mailbox', see Erlang mailboxes. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>