Commit Graph

989 Commits

Author SHA1 Message Date
Martin Sustrik
0d5f3ebbda sessions created by listerner are correctly shut down 2010-08-25 15:39:21 +02:00
Martin Sustrik
5a731e73c8 added ZMQ_MAKE_VALGRIND_HAPPY compile-time option 2010-08-25 15:39:20 +02:00
Martin Sustrik
43e34d0281 engine leak fixed; pgm compilation fixed 2010-08-25 15:39:20 +02:00
Martin Sustrik
45f83d78a5 one more dezombification bug fixed 2010-08-25 15:39:20 +02:00
Martin Sustrik
936dbf956b dezombification procedure 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 Lucina
ee1f1af009 zmq_poll(): Fix some corner cases
Trying to optimize out the case where items_[i]. events is 0 would
result in a bogus pollfds[i]. Similarly in the select()-based impl,
while not strictly necessary it's better to get ZMQ_FD even if
events is 0 since that detects ETERM and friends.
2010-08-25 15:39:20 +02:00
Martin Lucina
a85d1e51bf zmq_poll(): Rewrite to use ZMQ_FD/ZMQ_EVENTS pt2
Rewrite the select()-based zmq_poll() implementation to use
ZMQ_FD and ZMQ_EVENTS.

Also fix some corner cases: We should not pollute revents with
unrequested events, and we don't need to poll on ZMQ_FD at all
if a pollitem with no events set was passed in.
2010-08-25 15:39:20 +02:00
Martin Lucina
6b1ca2cb1e Fix whitespace
Dunno where those <TAB>s came from...
2010-08-25 15:39:20 +02:00
Martin Lucina
cd12508418 zmq_poll(): Rewrite to use ZMQ_FD/ZMQ_EVENTS pt1
Rewrite zmq_poll() to use ZMQ_FD and ZMQ_EVENTS introduced on the
wip-shutdown branch. Only do the poll()-based version of zmq_poll (), the
select()-based version will not compile at the moment.
2010-08-25 15:39:20 +02:00
Martin Sustrik
eb7b8a413a REP socket layered on top of XREP socket 2010-08-25 15:39:20 +02:00
Martin Sustrik
3e97c0fef4 REQ socket implementation is layered on top of XREQ 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 Sustrik
b7e0fa972f 'master' will become 2.1.x release 2010-08-25 15:38:43 +02:00
Martin Lucina
1e089f7163 Update ChangeLog for v2.0.8 2010-08-25 13:11:20 +02:00
Martin Lucina
c9076c5d8b Basic documentation for XREQ/XREP socket types
Add some basic documentation for XREQ/XREP socket types, including
a brief description of the most common use case (REQ -> XREP) and (XREQ ->
REP).
2010-08-25 12:50:16 +02:00
Pieter Hintjens
6d275a8788 Updated NEWS for stable 2.0.8 release 2010-08-25 12:09:55 +02:00
Pieter Hintjens
98bea86240 Updated NEWS for stable 2.0.8 release 2010-08-25 11:59:01 +02:00
Pieter Hintjens
d788c1f7e4 Updated NEWS for stable 2.0.8 release 2010-08-25 11:43:52 +02:00
Martin Lucina
c06a3cc510 Update version number to 2.0.8 2010-08-25 11:24:24 +02:00
Martin Lucina
b66dd7afd2 zmq_stopwatch_stop: Don't return EFAULT
Function returning unsigned long int cannot return (-1)
2010-08-25 09:50:45 +02:00
Pieter Hintjens
2b2accb8bf Added calls to zmq_msg_close in examples 2010-08-21 15:47:10 +02:00
Pieter Hintjens
c52d1f2d47 Fixed example for multipart zmq_recv() 2010-08-21 13:46:03 +02:00
Pieter Hintjens
87612be91d Merge branch '46_device_robustness' 2010-08-20 01:06:34 +02:00
Pieter Hintjens
de0035b6d9 Fixed git URL in README 2010-08-19 14:31:04 +02:00
Martin Sustrik
7aba2d1033 documentation leftover from v2.0.6 cleaned in zmq(7) 2010-08-18 12:00:26 +02:00
Pieter Hintjens
de0173754c Removed wip zmq_deviced from master 2010-08-11 21:12:10 +02:00
Pieter Hintjens
5be54b9120 46 - Devices vulnerable to invalid messages
http://github.com/zeromq/zeromq2/issues#issue/46
Invalid messages are now discarded silently, instead of causing an assertion
failure.
2010-08-11 17:05:19 +02:00
Pieter Hintjens
e74d350068 Fixed (un)signed type errors in get/setsockopt manual 2010-08-11 17:00:12 +02:00
Pieter Hintjens
a12f446c4c Modified zmq_tcp(7) to emphasize wildcard interfaces 2010-08-10 12:40:22 +02:00
Pieter Hintjens
b6cdd369e3 Added error checking (EFAULT) for null arguments
* Fixed zmq_term, zmq_socket, zmq_close, zmq_setsockopt,
* zmq_getsockopt, zmq_bind, zmq_connect, zmq_send,
* zmq_recv, zmq_poll, zmq_device, zmq_stopwatch_stop
* Updated Reference Manual for these methods
2010-08-08 11:43:32 +02:00
Pieter Hintjens
677b3d906a Added not-null assertions on pointer arguments in C API functions
* zmq_term
* zmq_socket
* zmq_close
* zmq_setsockopt
* zmq_getsockopt
* zmq_bind
* zmq_connect
* zmq_send
* zmq_recv
* zmq_poll
* zmq_device
* zmq_stopwatch_stop
2010-08-07 20:55:07 +02:00
Martin Lucina
b579aa9510 Merge branch 'master' of github.com:zeromq/zeromq2 2010-08-06 12:01:40 +02:00
Martin Lucina
6d35e82db4 Fix uninitialized use of nbytes in signaler fix 2010-08-06 12:00:57 +02:00
Pieter Hintjens
2100a91333 Merge branch 'master' of github.com:zeromq/zeromq2 2010-08-06 11:09:29 +02:00
Martin Lucina
16b43e657b Merge branch 'master' of github.com:zeromq/zeromq2 2010-08-05 23:41:49 +02:00
Martin Lucina
9ac2ff449c zmq::signaler_t: Restart syscalls on EINTR
This patch restarts the send() or recv() inside zmq::signaler_t if the call fails
due to EINTR.
2010-08-05 23:40:30 +02:00
Pieter Hintjens
78e9ee84bf Fixed MSVC project for PULL/PUSH 2010-08-05 18:49:49 +02:00
Pieter Hintjens
96bcc9e6cf Small improvements to zmq_device(3) page
* Clarified broker model and proxy model
* Added example of proxy model
2010-08-04 17:06:38 +02:00
Pieter Hintjens
13f3481e12 Further cleanups on reference manual
- fixed unwrapped text in new man pages
- fixed over-long lines in older pages, where possible
- removed reference to old standalong devices from index page
- added refernce to new zmq_device[3] documented from index page
- some minor spelling corrections
2010-08-04 16:05:25 +02:00
Pieter Hintjens
6ff193999d Removed empty man pages for old standalone devices 2010-08-04 15:07:15 +02:00
Pieter Hintjens
c51de31f2f Reverting 'clean' change to Makefile 2010-08-04 14:56:58 +02:00
Pieter Hintjens
77a3c36ff1 Various changes to documentation project:
* Added documentation for zmq_deviced, which we're developing
* Created consistent page footer in documentation template
* Page footer notes doc authors and copyright statement
2010-08-04 14:43:33 +02:00
Pieter Hintjens
6cd9030447 Added clean target that deletes generated man pages 2010-08-04 14:42:21 +02:00
Pieter Hintjens
f575f252c9 Added man page for the zmq_device method 2010-08-04 14:41:43 +02:00
Pieter Hintjens
11a410b658 Renamed ZMQ_UPSTREAM to ZMQ_PULL, and ZMQ_DOWNSTREAM to ZMQ_PUSH. Left the old
definitions as aliases, to be removed in release 3.0.  Also renamed the source
files implementing these two socket types.  This change does not break existing
applications nor bindings, but allows us to fix the documentation and user guide
now, rather than keeping the old (confusing) names.
2010-08-04 14:38:56 +02:00
Martin Lucina
544b36da68 XREQ: Correct behaviour on hitting ZMQ_HWM
This reverts part of commit 84e0c7991a to get
correct ZMQ_HWM semantics with XREQ sockets:

When sending a message to an XREQ socket, the underlying pipe is selected in
a round-robin fashion. If an underlying pipe is full it is skipped. If there
are no underlying pipes, or all underlying pipes are full then zmq_send()
shall block or return EAGAIN, depending on whether or not the call is blocking.
Messages are never dropped.
2010-07-30 16:49:06 +02:00
Martin Hurton
66470b2c55 perf: fix typo 2010-07-26 12:24:00 +02:00