0
0
mirror of https://github.com/zeromq/libzmq.git synced 2025-01-22 15:56:14 +08:00

70 Commits

Author SHA1 Message Date
Martin Sustrik
bc4a1ce334 ZMQ_HWM split into ZMQ_SNDHWM and ZMQ_RCVHWM
These new options allow to control the maximum size of the
inbound and outbound message pipe separately.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 16:47:33 +01:00
Martin Sustrik
8463b4d55e SWAP functionality removed
On-disk storage should be implemented in devices rather than
in 0MQ core. 0MQ is a networking library and there's no point
in storing network buffers on disk.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 12:27:06 +01:00
Martin Sustrik
32ded2b457 Duplicate identities now checked with zmq_connect
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-16 13:26:23 +01:00
Martin Sustrik
18b9ebea32 The copyrights in file headers updated.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-02 16:30:40 +01:00
Martin Sustrik
43e8868875 Added explicit error message in case of memory exhaustion
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-02-22 16:23:36 +01:00
Martin Sustrik
17e2ca71b4 Logging of duplicit identities added
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-02-18 14:15:10 +01:00
Martin Sustrik
b358df9fff Name of "GNU Lesser Public License" corrected.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-30 15:08:28 +02:00
Dhammika Pathirana
9a1d4df0fd fix typo, destroy new engine
Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>
2010-10-27 09:37:32 +02:00
Dhammika Pathirana
465da7b17e drop connection requests with duplicate peer identity
Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>
2010-10-26 16:02:47 +02:00
Martin Sustrik
e73c96ba30 Minor comment improvement.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-18 09:11:36 +02:00
Martin Sustrik
0a03e86e95 ZMQ_LINGER socket option added.
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-16 10:53:29 +02:00
Martin Sustrik
9d96e0037a Clean-up of the code related to attaching/detaching engines to sessions.
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-13 10:09:46 +02:00
Martin Sustrik
954d7f743d Avoid duplicate creation of pipes for a single session
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-12 17:55:09 +02:00
Martin Sustrik
daf5d3273b More cleanup of session termination process.
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-08 21:42:55 +02:00
Martin Sustrik
7a685b0f88 Clean-up of session termination process
Specifically, shutdown of child objects is initiated *before* termination
handshake with socket object.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-08 17:23:21 +02:00
Martin Sustrik
328c92a0a7 problem with engine being attached to session while it's being terminated fixed 2010-09-20 00:06:05 +02:00
Martin Sustrik
1f10208ad0 termination of pipe via delimiter message could stuck when no data were read from the pipe (because connection wasn't active) -- fixed 2010-09-19 08:42:19 +02:00
Martin Sustrik
5153b6368b obsolete 'active' flag removed from session_t 2010-09-19 08:39:53 +02:00
Martin Sustrik
c7b9ba3ccd reconnection process fixed when failure occurs during init phase 2010-09-17 12:58:20 +02:00
Martin Sustrik
9b8993efb4 elementary fixes to the named session 2010-08-25 15:39:21 +02:00
Martin Sustrik
0d5f3ebbda sessions created by listerner are correctly shut down 2010-08-25 15:39:21 +02:00
Martin Sustrik
43e34d0281 engine leak fixed; pgm compilation fixed 2010-08-25 15:39:20 +02:00
Martin Sustrik
76bd6e73c3 engine termination on disconnect fixed 2010-08-25 15:39:20 +02:00
Martin Sustrik
d13933bc62 I/O object hierarchy implemented 2010-08-25 15:39:20 +02:00
Martin Sustrik
f77edfce26 Destruction of session is delayed till both in & out pipes are closed 2010-08-25 15:39:20 +02:00
Martin Sustrik
05d908492d WIP: Socket migration between threads, new zmq_close() semantics
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-08-25 15:39:20 +02:00
Martin Hurton
fca2e8e8cc Add SWAP support 2010-06-21 15:06:51 +02:00
Martin Sustrik
8408ae066d LWM is computed rather than explicitly specified by user 2010-05-25 15:03:57 +02:00
Martin Sustrik
745db9c574 unitialised member in seesion_t class - fixed 2010-04-07 11:54:09 +02:00
Martin Sustrik
2f219d7c28 ZMQ_TBC renamed to ZMQ_MORE 2010-03-27 21:25:40 +01:00
Martin Sustrik
f031677100 rollback of half-processed messages in case of disconnection 2010-03-20 15:04:30 +01:00
Martin Sustrik
dfdaff5eba XREP-style prefixing/trimming messages removed 2010-03-20 10:58:59 +01:00
Martin Hurton
61ee6fae53 Implement flow control
This commit introduces the necessary changes necessary
for implementing flow control. None of the socket types
implements the flow control yet. The code will crash when
the flow control is enabled and the thw lwm is reached.

The following commits will add flow-control support for
individual socket types.
2010-03-12 11:07:38 +01:00
Martin Sustrik
727054547f don't check for identity, if the connection is anonymous 2010-02-19 17:02:07 +01:00
Martin Sustrik
75f571c884 Multi-hop REQ/REP, part XII., generate unique identities for anonymous connections 2010-02-19 15:24:43 +01:00
Martin Sustrik
b9caa319e2 Multi-hop REQ/REP, part XI., finalise the XREQ/XREP functionality 2010-02-16 18:30:38 +01:00
Martin Sustrik
43620b3d35 Multi-hop REQ/REP, part X., optional delayed creation of pipes during connect 2010-02-14 13:34:48 +01:00
Martin Sustrik
4405250d93 Multi-hop REQ/REP, part IX., pass the peer identity as far as socket_base_t 2010-02-13 15:30:03 +01:00
Martin Sustrik
f5ce81f289 Multi-hop REQ/REP, part VIII., new blob_t type used for holding identity 2010-02-13 14:07:30 +01:00
Martin Sustrik
cdc2efe9b5 Multi-hop REQ/REP, part VII., identity-related algorithms rewritten 2010-02-13 13:07:33 +01:00
Martin Sustrik
923eacd28a Multi-hop REQ/REP, part VI., session 'name' renamed to 'peer_identity' 2010-02-13 09:09:40 +01:00
Martin Sustrik
2e78e48503 Multi-hop REQ/REP, part V., peer identity is passed from init object to session 2010-02-12 20:49:00 +01:00
Martin Sustrik
f0757c003e ZMQII-43: Race condition when writing to pipe 2010-01-21 09:58:49 +01:00
Martin Sustrik
4f6baf4dde Copyrights transferred from FastMQ to iMatix 2010-01-05 08:29:35 +01:00
Martin Sustrik
aebff623f3 ZMQII-28: Bidirectional introduction on TCP connection establishment 2009-12-23 19:37:56 +01:00
Martin Sustrik
8aa0908635 all news converted to nothrow variant 2009-12-15 23:49:55 +01:00
Martin Sustrik
2cef05d869 reconnection mechanism added to tcp transport 2009-12-15 17:49:40 +01:00
Martin Sustrik
7146ef85e9 seqnum mechanism automated 2009-12-02 21:26:47 +01:00
Martin Sustrik
9bd309bda6 annoying optimisation in 'bind' command removed 2009-12-01 18:50:54 +01:00
Martin Sustrik
8d85638f77 memory leak in message encoder fixed 2009-11-26 12:01:26 +01:00
Martin Sustrik
c41daca3da race condition in inproc transport shutdown fixed 2009-11-21 21:30:09 +01:00
Martin Sustrik
64634605b3 obsolete parameter removed from 'bind' command 2009-11-21 21:13:29 +01:00
Martin Sustrik
b15f695976 different fixes to req/rep 2009-09-21 17:20:13 +02:00
Martin Sustrik
cb1b6fe32c initial version of req/rep sockets 2009-09-21 14:39:59 +02:00
Martin Sustrik
4631fde7e3 ZMQII-8: Failure during orphan pipe deallocation 2009-09-16 14:02:43 +02:00
Martin Sustrik
9c522dccaf reconnect added to zmq_connecter 2009-09-16 11:02:18 +02:00
Martin Sustrik
5daa0dec0f ZMQII-5: Only one consumer in a process gets the message 2009-09-11 13:20:24 +02:00
Martin Sustrik
4307baf7bc python binding functional 2009-09-04 16:02:41 +02:00
Martin Sustrik
f92de9b2a9 bug during terminal shutdown fixed 2009-09-02 14:59:53 +02:00
Martin Sustrik
6a5120b1f1 python extension & perf tests 2009-09-02 10:22:23 +02:00
Martin Sustrik
176879e5bb engine virtualised; chatroom example removed 2009-08-30 08:18:31 +02:00
Martin Sustrik
cb09c6951e pipe deallocation added 2009-08-28 16:51:46 +02:00
Martin Sustrik
2dd5016515 multiple bugs fixed 2009-08-27 16:24:21 +02:00
Martin Sustrik
99c5d92836 pipes added 2009-08-27 10:54:28 +02:00
Martin Sustrik
6be4b01437 session management implemented 2009-08-21 14:29:22 +02:00
Martin Sustrik
a801b6d8b3 couple of bugs in shutdown mechanism fixed 2009-08-20 11:32:23 +02:00
Martin Sustrik
059beca59d listener/connecter/init/session added 2009-08-12 09:40:16 +02:00
Martin Sustrik
0b5cc026fb clean up - session/socket/engine stuff removed 2009-08-06 12:51:32 +02:00
Martin Sustrik
cc3755a16f renamed from zs to zmq 2009-08-03 11:30:13 +02:00
Martin Sustrik
4ed70a9302 initial commit 2009-07-29 12:07:54 +02:00