21 Commits

Author SHA1 Message Date
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
80ac398bba Initial implementation of reaper thread.
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-09 15:32:15 +01:00
Martin Sustrik
9da84a5239 signaler renamed to mailbox
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>
2010-11-05 17:39:51 +01:00
Martin Sustrik
9cfdb441f4 slots renamed to tids
Threads were so far identified by integers called 'slots'.
This patch renames them to more comprehensible 'tid's (thread IDs).

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-11-05 16:38:52 +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
Martin Sustrik
cf815e8c78 new interfaces for timers; the implementation is not changed yet 2010-09-26 18:30:03 +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 Sustrik
835e893e54 dispatcher_t class renamed to ctx_t 2010-05-05 14:24:54 +02:00
Martin Sustrik
ae93ed318a signaler rewritten in such a way that any number (>64) of threads can be used 2010-04-29 20:34:48 +02:00
Martin Sustrik
37128b7b1a fd_signaler_t renamed to signaler_t 2010-04-29 17:31:57 +02:00
Martin Sustrik
c193fd1466 lock-free polling removed; ZMQ_POLL flag removed 2010-04-29 17:20:23 +02:00
Martin Sustrik
4f6baf4dde Copyrights transferred from FastMQ to iMatix 2010-01-05 08:29:35 +01:00
Martin Sustrik
2cef05d869 reconnection mechanism added to tcp transport 2009-12-15 17:49:40 +01:00
Martin Sustrik
4efe2366d7 poller is a concept now rather than virtualised class 2009-10-02 10:46:36 +02:00
Martin Sustrik
50a8b9ea0c 'flags' parameter added to zmq_init 2009-09-20 10:14:21 +02:00
Martin Sustrik
5b5b513330 socket options interface modeled as in BSD sockets 2009-08-09 09:24:48 +02:00
Martin Sustrik
a8b410e66c lockfree interaction patter for 3 theads implemented 2009-08-08 16:01:58 +02:00
Martin Sustrik
0b5cc026fb clean up - session/socket/engine stuff removed 2009-08-06 12:51:32 +02:00
Martin Sustrik
b8b4acef4c dispatcher renamed to context 2009-08-06 10:47:34 +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