summaryrefslogtreecommitdiff
path: root/src/fq.cpp
AgeCommit message (Collapse)Author
2011-05-23Move the pipe termination code to socket_base_tMartin Sustrik
So far, the pipe termination code was spread among socket type classes, fair queuer, load balancer, etc. This patch moves all the associated logic to a single place. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-22Introduces bi-directional pipesMartin Sustrik
So far, there was a pair of unidirectional pipes between a socket and a session (or an inproc peer). This resulted in complex problems with half-closed states and tracking which inpipe corresponds to which outpipe. This patch doesn't add any functionality in itself, but is essential for further work on features like subscription forwarding. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-15Fixes warning when compiling with MSVC on Win64Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-22Assert during SUB socket termination fixed.Martin Sustrik
Fair queueing algorithm was checking whether the current pipe is not closed in the middle of reading a multipart message. However, this is OK when the socket is closing down. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-21Message-related functionality factored out into msg_t class.Martin Sustrik
This patch addresses serveral issues: 1. It gathers message related functionality scattered over whole codebase into a single class. 2. It makes zmq_msg_t an opaque datatype. Internals of the class don't pollute zmq.h header file. 3. zmq_msg_t size decreases from 48 to 32 bytes. That saves ~33% of memory in scenarios with large amount of small messages. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-02The copyrights in file headers updated.Martin 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-08Clean-up of session termination processMartin Sustrik
Specifically, shutdown of child objects is initiated *before* termination handshake with socket object. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-09-18single term ack counting mechanism for every socket (no separate mechanisms ↵Martin Sustrik
for fq_t and lb_t)
2010-09-18potential duplicate termination of pipes removedMartin Sustrik
2010-09-07Bug in fq_t and lb_t (when used via ZMQ_EVENTS option) fixedMartin Sustrik
2010-09-01hangup when closing socket with no pipes attached -- fixedMartin Sustrik
2010-08-28terminology unified: revive->activateMartin Sustrik
2010-08-25I/O object hierarchy implementedMartin Sustrik
2010-08-25REQ socket implementation is layered on top of XREQMartin Sustrik
2010-08-25WIP: Socket migration between threads, new zmq_close() semanticsMartin Sustrik
Sockets may now be migrated between OS threads; sockets may not be used by more than one thread at any time. To migrate a socket to another thread the caller must ensure that a full memory barrier is called before using the socket from the target thread. The new zmq_close() semantics implement the behaviour discussed at: http://lists.zeromq.org/pipermail/zeromq-dev/2010-July/004244.html Specifically, zmq_close() is now deterministic and while it still returns immediately, it does not discard any data that may still be queued for sending. Further, zmq_term() will now block until all outstanding data has been sent. TODO: Many bugs have been introduced, needs testing. Further, SO_LINGER or an equivalent mechanism (possibly a configurable timeout to zmq_term()) needs to be implemented.
2010-03-27ZMQ_TBC renamed to ZMQ_MOREMartin Sustrik
2010-03-27multi-part messages work with PUB/SUBMartin Sustrik
2010-03-11Restructure language bindingsMartin Lucina
C and C++ headers moved from bindings/ to include/, bindings/ removed --with-c and --with-cpp options to configure removed, C and C++ now built and installed by default
2010-02-10fq: bugfix - don't read msg from inactive pipeMartin Hurton
2010-01-05Copyrights transferred from FastMQ to iMatixMartin Sustrik
2009-12-15zmq_encoder/decoder are able to add/trim prefixes from messages; fair ↵Martin Sustrik
queueing and load balancing algorithms factorised into separate classes