summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2010-11-04Automatically resize signalling socket buffer if fullMartin Lucina
If the socketpair used by signaler_t fills up, this can lead to deadlock. This patch provides partial resolution by attempting to resize SO_SNDBUF on the writer side, and if that fails we shall at least assert rather than hang. I've also refactored the signaler_t code to make the platform-dependent parts clearer and have tested both the MSG_DONTWAIT and standard POSIX path in recv. The Win32 implementation currently does not implement resizing as I'm not convinced that it's safe, but it will also assert like other platforms if signaler_t::send() cannot succeed. The OpenVMS implementation has been carried forward but is untested. Signed-off-by: Martin Lucina <mato@kotelna.sk>
2010-11-04Previous FD_STSIZE patch reverted.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-11-04FD_SETSIZE for internal polling defaults to 1024Martin Sustrik
If, when compiling 0MQ you don't set FD_SETSIZE, it defaults to 1024 rather than to 64. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-11-04minor typo fixedMartin Sustrik
Devpoll polling mechanism used ZMQ_HAVE_SOLRIS instead of ZMQ_HAVE_SOLARIS in one case. Fixed. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-11-02HP-UX has no OPEN_MAX definedMartin Sustrik
devpoll_t used this constant to determine how many events to retrieve from the poller in one go. The implementation was changed not to depend on this constant. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-11-01select now uses Erase-Remove idiom for retired fdsMikael Helbo Kjaer
Signed-off-by: Mikael Helbo Kjaer <mhk@designtech.dk>
2010-10-30Coding style fixed for pgm_socketMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-30Name of "GNU Lesser Public License" corrected.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-27fix typo, destroy new engineDhammika Pathirana
Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>
2010-10-26drop connection requests with duplicate peer identityDhammika Pathirana
Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>
2010-10-26Build with MSVC2005 fixedMartin Sustrik
To use __rdtsc() function MSVC2005 requires including intrin.h Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-23handle decoding malformed messagesDhammika Pathirana
Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>
2010-10-23Changes for MSVC OpenPGM build.Steven McCoy
Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
2010-10-23Merge branch 'maint'Martin Sustrik
* maint: SunStudio fixed.
2010-10-23SunStudio fixed.Martin Sustrik
With SunStudio's implementation of STL basic_string constructor doesn't accept NULL as a parameter even though size of string is set to zero. Fixed. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-18Minor comment improvement.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-17ZMQ_BACKLOG socket option added.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-17ZMQ_RECONNECT_IVL socket options added.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-16Couple of bugs in zmq_poll fixed.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-16Implementation of zmq_strerror moved from zmq.cpp to err.cppMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-16Bug in low precision clock fixed.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-16ZMQ_LINGER socket option added.Martin Sustrik
1. ZMQ_LINGER option can be set/get 2. options are part of own_t base class rather than being declared separately by individual objects 3. Linger option is propagated with "term" command so that the newest value of it is used rather than the stored old one. 4. Session sets the linger timer if needed and terminates as soon as it expires. 5. Corresponding documentation updated. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-16Cancel tx_timer_id in pgm_sender_t::out_event().Toralf Wittner
Signed-off-by: Toralf Wittner <toralf.wittner@gmail.com>
2010-10-16Minor code clean-up to keep clang compiler happy.Martin Sustrik
"warning: extra ';' inside a struct or union [-pedantic]" Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-16Obsolete compile-time option removed.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-15Merge branch 'maint'Martin Sustrik
* maint: Fix memory leak under Windows
2010-10-15Fix memory leak under WindowsTaras Shpot
The comment about memory ownership in uuid_t::to_string was misleading as on most platforms the buffer is a field of the object; The string allocated in UuidToString() wasn't properly freed with RpcStringFree() Signed-off-by: Taras Shpot <taras.shpot@eleks.com>
2010-10-15Minor fix in devpoll.hppMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-15Destructor of poller_base_t made virtual.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-15Cast execute_timers() result to intMikko Koppanen
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2010-10-15Timers correctly canceled by PGM engines on shutdown.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-15ICC related qualifier fixMikko Koppanen
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2010-10-14zmq::clock_t : return correct value in rdtsc() on solarisMartin Pales
Function clock_t::rdtsc() now returns correct value when compiled with sunstudio 12 compiler. Signed-off-by: Martin Pales <m.pales@gmail.com>
2010-10-14To insert to associateive STL containers value_type used instead of make_pairMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-14zmq::poller_base_t : workaround for sunstudio compiler in add_timer()Martin Pales
A minor workaround to resolve compilation error with sunstudio compiler, which does not yet support member templates for std::multimap. Signed-off-by: Martin Pales <m.pales@gmail.com>
2010-10-14Safety measure in zmq_msg_close implementedMartin Sustrik
zmq_msg_close now empties the message on zmq_msg_close, thus not leaving random data in the structure, that may be mistaken for a valid message. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-14zmq::devpoll_t : correct a typo in loop()Martin Pales
A minor typo correction to resolve compilation error on Solaris. Signed-off-by: Martin Pales <m.pales@gmail.com>
2010-10-13Precise timouts in zmq_poll implementedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-13Clean-up of the code related to attaching/detaching engines to sessions.Martin Sustrik
Session base class now handles the engine events exclusively. It notifies derived session types using dedicated "attached" and "detached" events. Couple of bugs was fixed along the way. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-12Avoid duplicate creation of pipes for a single sessionMartin Sustrik
When a session is being closed down its inbound and outbound pipe pointers are set to null. If (re) connection happens at that time, session may try to reinistantiate the pipes which is wrong. This patch allows session to attach pipes only once in its lifetime. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-12Drop PGM parameters to 100mb friendly range.Steven McCoy
Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
2010-10-11Fix assertion in PGM transports on cancel_timerSteven McCoy
Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
2010-10-11Reverting commit 1d431190f50c86f62460Martin Sustrik
The patch was supposed to check that pipe writer sends messages in atomic fashion. However, it prevented the user to read half of a message and close the socket. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-10When XREP silently drops message, it does not empty it -- fixedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-09Execute the timers before pollset initialisation.Christian Gudrian
Since executing the timers might modify the source pollsets we have to defer the initialisation until after the timers have executed. Signed-off-by: Christian Gudrian <christian.gudrian@fluidon.com>
2010-10-09Merge branch 'maint'Martin Sustrik
* maint: Version macros added Conflicts: builds/msvc/platform.hpp Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-09Version macros addedMartin Sustrik
Macro ZMQ_VERSION represents the current version of 0MQ Macro ZMQ_MAKE_VERSION(major,minor,patch) allows to create a representation of the specified version. The versions can be compared using simple <, >, ==, etc. operators. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-08Fix missing platform.hpp in zmq_connecter.cppMartin Lucina
Missed testing on Win32 Signed-off-by: Martin Lucina <mato@kotelna.sk>
2010-10-08More cleanup of session termination process.Martin Sustrik
Fix in termination of session attached to a REP socket. Several fixes of session termination in case of disconnection. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-08Scalability improvements for large amounts of connectionsMartin Lucina
Add signaler_sndbuf_size option to config.hpp which allows the user to increase the size of the send buffer used by the signalling socketpair. Implement random backoff for reconnection attempts using a primitive pseudo-random generation to prevent reconnection storms. Add wait_before_connect option to config.hpp to allow the user to enable random delay even on initial connect. Default is false for low latency. Signed-off-by: Martin Lucina <mato@kotelna.sk>