Commit Graph

4409 Commits

Author SHA1 Message Date
Constantin Rack
22179afaba Merge pull request #1629 from hintjens/master
Problem: Windows 7 TCP slow start
2015-11-01 13:16:55 +01:00
Pieter Hintjens
54e2e2a7ad Problem: Windows 7 TCP slow start
See issue #1608.

This is an old issue with Windows 7. The effect is that we see a latency
ramp on the first 500 messages.

* The ramp is unaffected by message size.
* Sleeping up to 100msec between sends has no effect except to switch
    off ZeroMQ batching so making the ramp more visible.
* After 500 messages, latency falls back down to ~10-40 usec.
* Over inproc:// the ramp happens when we use the signaler class.
* Client-server over inproc:// does not show the ramp.
* Client-server over tcp:// shows a similar ramp.

We know that the signaller is using TCP on Windows. We can 'prime' the
connection by doing 500 dummy sends. This potentially causes new sockets
to be delayed on creation, which is not a good solution.

Note that the signaller sends zero-byte messages. This may also be
confusing TCP.

Solution: flood the receive buffer when creating a new FD pair; send a
1M buffer and discard it.

Fixes #1608
2015-11-01 12:57:53 +01:00
Constantin Rack
ac46e6da96 Merge pull request #1628 from hintjens/master
Fix for #1399
2015-11-01 10:47:33 +01:00
Pieter Hintjens
ba1515fe07 Problem: asserts if EINVAL recieved on read/write
This causes assertion failures after network reconnects.

Solution: allow EINVAL as a possible condition after read/write.

Fixes #829
Fixes #1399

Patch provided by Michele Dionisio @mdionisio, thanks :)
2015-11-01 08:56:50 +01:00
Pieter Hintjens
f38c11c063 Whitespace fixes 2015-10-30 10:22:05 +01:00
Pieter Hintjens
ab2c009d0d Merge pull request #1626 from ahmetkakici/master
Added missing socket_poller.cpp file to msvc solutions.
2015-10-27 12:23:03 +01:00
ahmet
7c8e65e2cd Added missing socket_poller.cpp file to msvc solutions.
also fixes issue https://github.com/zeromq/libzmq/issues/1624
2015-10-27 14:16:36 +02:00
Pieter Hintjens
182688d431 Merge pull request #1625 from lytboris/master
Acutally allow specifying interfaces as source address
2015-10-26 23:02:05 +01:00
Boris Lytochkin
a4baa36ba4 acutally allow specifying interfaces as source address 2015-10-27 00:37:53 +03:00
Constantin Rack
9b1432256d Merge pull request #1623 from zeromq/sappo-patch-1
Problem: libzmq appveyor build status is not visible
2015-10-26 09:28:35 +01:00
Kevin Sapper
64ffb3fc92 Problem: libzmq appveyor build status is not visible
Solution: Add a travis like badge to the README

fixes #1622
2015-10-26 08:59:22 +01:00
Pieter Hintjens
dc04c5bbd6 Merge pull request #1621 from madebr/cmake_winci_fixes
Cmake winci fixes
2015-10-25 09:54:00 +01:00
Anonymous Maarten
0a0b9fd760 tweetNaCL: fix winrandom
problem: random byte generation on windows got stuck in an infinite loop
solution: the failure test is incorrect. Change it
2015-10-25 03:43:24 +01:00
Anonymous Maarten
571ee21eef appveyor: build all relevant combinations
problem: not all configurations were built (and some were duplicated) in
Windows CI
solution: add all correct combinations to appveyor.yml
2015-10-25 01:14:27 +02:00
Anonymous Maarten
89338f43d5 CMake: fix library name on linux
problem: cmake added a prefix of lib to libzmq, resulting in
liblibzmq.so
solution: set an empty prefix
2015-10-25 01:14:27 +02:00
Pieter Hintjens
c5572211e7 Merge pull request #1620 from madebr/ctest_missing_tests
CTest: add all sources in tests folder to CTest
2015-10-24 12:19:10 +02:00
Anonymous Maarten
9930f1fc20 CTest: add missing tests + check for unknown tests 2015-10-24 00:17:52 +02:00
Anonymous Maarten
2f63231860 cmake: libzmq can now be built with both sodium and TweetNaCL 2015-10-24 00:16:01 +02:00
Constantin Rack
7fe032180a Merge pull request #1619 from madebr/winrandombytes
TweetNaCL: add windows randombytes implementation
2015-10-24 00:01:55 +02:00
Anonymous Maarten
b2c87b9a70 TweetNaCL: add windows randombytes implementation 2015-10-23 23:34:53 +02:00
Pieter Hintjens
e182438ad6 Merge pull request #1618 from madebr/cmake_sodium
CMake: use libsodium + add Windows CI
2015-10-23 09:20:18 +02:00
Anonymous Maarten
35d723ce5b Add Windows Continuous Integration (appveyor) 2015-10-23 04:07:12 +02:00
Anonymous Maarten
55ca9c5654 CMake: use libsodium if available, else use tweet_nacl 2015-10-23 04:06:57 +02:00
Constantin Rack
5d98e602c9 Merge pull request #1617 from somdoron/removing_pollfd
problem: zmq_pollfd is not needed anymore when zmq_poller in place.
2015-10-22 11:21:16 +02:00
somdoron
da2bc60abe Removing zmq_pollfd as it is replaced by zmq_poller 2015-10-22 11:52:24 +03:00
Richard Newton
0650b59b10 Merge pull request #1616 from somdoron/ZMQ_POLLER
problem: ZMQ_POLLER doesn't support polling on out
2015-10-21 12:42:44 +01:00
somdoron
24fc0d4e89 drop the socket postfix from poller methods 2015-10-21 14:04:33 +03:00
somdoron
5c71fe6538 Fix socket_poller windows compiling issue 2015-10-21 10:34:00 +03:00
somdoron
024819b491 add ZMQ_HAVE_POLLER define to check if ZMQ_POLLER exist 2015-10-21 10:17:33 +03:00
somdoron
476ba22e0a ZMQ_Poller support more event types 2015-10-21 10:14:36 +03:00
somdoron
544d1e3499 Change the error of zmq_poller from EAGAIN to ETIMEDOUT 2015-10-21 09:37:52 +03:00
Pieter Hintjens
a7ea57fb68 Merge pull request #1615 from jeroenooms/master
enable static libraries on mingw
2015-10-20 13:50:07 +02:00
Jeroen Ooms
9114d39577 enable static libraries on mingw 2015-10-20 13:10:38 +02:00
Pieter Hintjens
979e6bb45c Merge pull request #1613 from maxkozlovsky/master
honor buffer reference count in zmq::shared_message_memory_allocator:…
2015-10-19 23:08:11 +02:00
Max Kozlovsky
06e882f8ea honor buffer reference count in zmq::shared_message_memory_allocator::deallocate 2015-10-19 13:29:26 -07:00
Constantin Rack
f1e6cb8ba9 Merge pull request #1611 from somdoron/zpoller-port
problem: polling on multiple sockets is complicated
2015-10-18 21:13:31 +02:00
somdoron
e387ce1571 remove pollfd from sockets when destroying poller 2015-10-18 21:50:24 +03:00
somdoron
6501b8089f port zpoller to libzmq as zmq_poller 2015-10-18 21:07:23 +03:00
Pieter Hintjens
500269955d Merge pull request #1604 from wcs1only/master
Fixed for issue  #1315
2015-10-09 15:56:27 +02:00
Charles Stanley
516b440e0d fixes #1315 socket monitor hangs if zmq_bind fails 2015-10-09 09:02:09 -04:00
Constantin Rack
a28398a4e8 Merge pull request #1603 from jizhilong/fix/typo
fix a typo in ypipe.hpp
2015-10-09 05:48:39 +02:00
Zhilong.JI
9a7858245c fix a typo in ypipe.hpp 2015-10-09 10:52:36 +08:00
Jens Auer
ea26e68b9d New options to set send/recv buffer size for TCP sockets. 2015-10-08 22:06:33 +02:00
Constantin Rack
ca52520944 Merge pull request #1602 from scemama/master
Fixes issue #1556
2015-10-07 22:30:53 +02:00
Anthony Scemama
aefc5d120b Default behavior is --with-libsodium=yes 2015-10-07 22:18:08 +02:00
Anthony Scemama
73a0eed75d Fixes issue #1556 2015-10-07 21:45:49 +02:00
Pieter Hintjens
96014ee7ed Merge pull request #1600 from lsniks/master
Issue 1588 : Rollback in case send fails for multipart msg
2015-10-05 20:57:51 +02:00
Nikhil Mishra
8ec747e14a Issue 1588 : Rollback in case send fails for multipart msg 2015-10-05 11:46:48 -07:00
Constantin Rack
cca67fdd1b Merge pull request #1595 from pijyoi/signaler_failable
create signaler::recv_failable()
2015-09-29 06:01:51 +02:00
KIU Shueng Chuan
596d6e5b1c create signaler::recv_failable()
In real world usage, there have been reported signaler failures where the
eventfd read() or socket recv() system call in signaler::recv() fails,
despite having made a prior successful signaler::wait() call.

this patch creates a signaler::recv_failable() method that allows
unreadable eventfd / socket to return an error without asserting.
2015-09-29 09:14:02 +08:00