libzmq 0.0.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/libzmq/Makefile +2 -2
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/AUTHORS +3 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/COPYING +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/COPYING.LESSER +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/ChangeLog +663 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/INSTALL +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/MAINTAINERS +7 -7
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/Makefile.am +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/Makefile.in +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/NEWS +68 -21
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/README +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/acinclude.m4 +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/aclocal.m4 +2 -2
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/autogen.sh +4 -4
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/Makefile.am +3 -1
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/Makefile.in +3 -1
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/c_local_lat/c_local_lat.vcproj +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/c_local_thr/c_local_thr.vcproj +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/c_remote_lat/c_remote_lat.vcproj +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/c_remote_thr/c_remote_thr.vcproj +0 -0
- data/libzmq/zeromq-2.1.9/builds/msvc/inproc_lat/inproc_lat.vcproj +174 -0
- data/libzmq/zeromq-2.1.9/builds/msvc/inproc_thr/inproc_thr.vcproj +174 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/libzmq/libzmq.vcproj +4 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/msvc.sln +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/platform.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/redhat/zeromq.spec.in +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/compile +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/config.guess +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/config.sub +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/depcomp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/install-sh +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/libtool.m4 +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/ltmain.sh +2 -2
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/ltoptions.m4 +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/ltsugar.m4 +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/ltversion.m4 +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/lt~obsolete.m4 +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/missing +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/configure +18 -10
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/configure.in +6 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/Makefile.am +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/Makefile.in +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/asciidoc.conf +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq.7 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq.html +86 -72
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_bind.3 +8 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_bind.html +67 -65
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_bind.txt +2 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_close.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_close.html +57 -65
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_close.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_connect.3 +8 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_connect.html +67 -65
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_connect.txt +2 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_cpp.7 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_cpp.html +127 -109
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_cpp.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_device.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_device.html +67 -65
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_device.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_epgm.7 +5 -5
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_epgm.html +67 -69
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_epgm.txt +2 -2
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_errno.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_errno.html +57 -65
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_errno.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_getsockopt.3 +4 -4
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_getsockopt.html +114 -84
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_getsockopt.txt +1 -1
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_init.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_init.html +57 -65
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_init.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_inproc.7 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_inproc.html +63 -67
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_inproc.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_ipc.7 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_ipc.html +63 -67
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_ipc.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_close.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_close.html +56 -64
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_close.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_copy.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_copy.html +56 -64
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_copy.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_data.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_data.html +57 -65
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_data.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init.html +59 -65
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init_data.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init_data.html +59 -65
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init_data.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init_size.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init_size.html +57 -65
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init_size.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_move.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_move.html +56 -64
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_move.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_size.3 +4 -4
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_size.html +58 -66
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_size.txt +1 -1
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_pgm.7 +5 -5
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_pgm.html +67 -69
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_pgm.txt +2 -2
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_poll.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_poll.html +59 -65
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_poll.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_recv.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_recv.html +62 -66
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_recv.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_send.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_send.html +62 -66
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_send.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_setsockopt.3 +4 -4
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_setsockopt.html +108 -82
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_setsockopt.txt +1 -1
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_socket.3 +5 -5
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_socket.html +89 -71
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_socket.txt +2 -2
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_strerror.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_strerror.html +59 -65
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_strerror.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_tcp.7 +4 -4
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_tcp.html +64 -68
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_tcp.txt +1 -1
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_term.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_term.html +57 -65
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_term.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_version.3 +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_version.html +59 -65
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_version.txt +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/foreign/openpgm/Makefile.am +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/foreign/openpgm/Makefile.in +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/foreign/openpgm/libpgm-5.1.115~dfsg.tar.gz +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/foreign/xmlParser/xmlParser.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/foreign/xmlParser/xmlParser.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/include/zmq.h +2 -2
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/include/zmq.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/include/zmq_utils.h +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/Makefile.am +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/Makefile.in +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/inproc_lat.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/inproc_thr.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/local_lat.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/local_thr.cpp +1 -1
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/remote_lat.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/remote_thr.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/Makefile.am +2 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/Makefile.in +20 -8
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/array.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/atomic_counter.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/atomic_ptr.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/blob.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/clock.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/clock.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/command.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/command.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/config.hpp +7 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/connect_session.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/connect_session.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/ctx.cpp +8 -6
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/ctx.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/decoder.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/decoder.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/device.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/device.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/devpoll.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/devpoll.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/dist.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/dist.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/encoder.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/encoder.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/epoll.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/epoll.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/err.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/err.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/fd.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/fq.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/fq.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/i_engine.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/i_inout.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/i_poll_events.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/io_object.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/io_object.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/io_thread.cpp +1 -1
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/io_thread.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/ip.cpp +10 -10
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/ip.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/kqueue.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/kqueue.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/lb.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/lb.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/libzmq.pc.in +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/likely.hpp +0 -0
- data/libzmq/zeromq-2.1.9/src/mailbox.cpp +82 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/mailbox.hpp +19 -7
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/msg_content.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/mutex.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/named_session.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/named_session.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/object.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/object.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/options.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/options.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/own.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/own.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pair.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pair.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pgm_receiver.cpp +2 -2
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pgm_receiver.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pgm_sender.cpp +4 -4
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pgm_sender.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pgm_socket.cpp +4 -4
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pgm_socket.hpp +4 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pipe.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pipe.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/platform.hpp.in +3 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/poll.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/poll.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/poller.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/poller_base.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/poller_base.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pub.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pub.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pull.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pull.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/push.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/push.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/reaper.cpp +1 -1
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/reaper.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/rep.cpp +1 -1
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/rep.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/req.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/req.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/select.cpp +5 -4
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/select.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/semaphore.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/session.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/session.hpp +0 -0
- data/libzmq/{zeromq-2.1.7/src/mailbox.cpp → zeromq-2.1.9/src/signaler.cpp} +135 -173
- data/libzmq/zeromq-2.1.9/src/signaler.hpp +63 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/socket_base.cpp +58 -21
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/socket_base.hpp +3 -3
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/stdint.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/sub.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/sub.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/swap.cpp +3 -5
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/swap.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/tcp_connecter.cpp +2 -1
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/tcp_connecter.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/tcp_listener.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/tcp_listener.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/tcp_socket.cpp +5 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/tcp_socket.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/thread.cpp +9 -7
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/thread.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/transient_session.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/transient_session.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/trie.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/trie.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/uuid.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/uuid.hpp +0 -0
- data/libzmq/zeromq-2.1.9/src/windows.hpp +177 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/wire.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xpub.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xpub.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xrep.cpp +0 -4
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xrep.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xreq.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xreq.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xsub.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xsub.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/ypipe.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/yqueue.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq.cpp +17 -7
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_connecter.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_connecter.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_engine.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_engine.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_init.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_init.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_listener.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_listener.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/Makefile.am +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/Makefile.in +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_hwm.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_pair_inproc.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_pair_ipc.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_pair_tcp.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_reqrep_inproc.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_reqrep_ipc.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_reqrep_tcp.cpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_shutdown_stress.cpp +1 -1
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/testutil.hpp +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/version.sh +0 -0
- data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/zeromq.spec +1 -1
- metadata +299 -295
- data/libzmq/zeromq-2.1.7/src/windows.hpp +0 -79
@@ -0,0 +1,63 @@
|
|
1
|
+
/*
|
2
|
+
Copyright (c) 2007-2011 iMatix Corporation
|
3
|
+
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
4
|
+
|
5
|
+
This file is part of 0MQ.
|
6
|
+
|
7
|
+
0MQ is free software; you can redistribute it and/or modify it under
|
8
|
+
the terms of the GNU Lesser General Public License as published by
|
9
|
+
the Free Software Foundation; either version 3 of the License, or
|
10
|
+
(at your option) any later version.
|
11
|
+
|
12
|
+
0MQ is distributed in the hope that it will be useful,
|
13
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
GNU Lesser General Public License for more details.
|
16
|
+
|
17
|
+
You should have received a copy of the GNU Lesser General Public License
|
18
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
*/
|
20
|
+
|
21
|
+
#ifndef __ZMQ_SIGNALER_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_SIGNALER_HPP_INCLUDED__
|
23
|
+
|
24
|
+
#include "fd.hpp"
|
25
|
+
|
26
|
+
namespace zmq
|
27
|
+
{
|
28
|
+
|
29
|
+
// This is a cross-platform equivalent to signal_fd. However, as opposed
|
30
|
+
// to signal_fd there can be at most one signal in the signaler at any
|
31
|
+
// given moment. Attempt to send a signal before receiving the previous
|
32
|
+
// one will result in undefined behaviour.
|
33
|
+
|
34
|
+
class signaler_t
|
35
|
+
{
|
36
|
+
public:
|
37
|
+
|
38
|
+
signaler_t ();
|
39
|
+
~signaler_t ();
|
40
|
+
|
41
|
+
fd_t get_fd ();
|
42
|
+
void send ();
|
43
|
+
int wait (int timeout_);
|
44
|
+
void recv ();
|
45
|
+
|
46
|
+
private:
|
47
|
+
|
48
|
+
// Creates a pair of filedescriptors that will be used
|
49
|
+
// to pass the signals.
|
50
|
+
static int make_fdpair (fd_t *r_, fd_t *w_);
|
51
|
+
|
52
|
+
// Write & read end of the socketpair.
|
53
|
+
fd_t w;
|
54
|
+
fd_t r;
|
55
|
+
|
56
|
+
// Disable copying of signaler_t object.
|
57
|
+
signaler_t (const signaler_t&);
|
58
|
+
const signaler_t &operator = (const signaler_t&);
|
59
|
+
};
|
60
|
+
|
61
|
+
}
|
62
|
+
|
63
|
+
#endif
|
@@ -277,7 +277,7 @@ int zmq::socket_base_t::getsockopt (int option_, void *optval_,
|
|
277
277
|
errno = EINVAL;
|
278
278
|
return -1;
|
279
279
|
}
|
280
|
-
int rc = process_commands (
|
280
|
+
int rc = process_commands (0, false);
|
281
281
|
if (rc != 0 && (errno == EINTR || errno == ETERM))
|
282
282
|
return -1;
|
283
283
|
errno_assert (rc == 0);
|
@@ -480,7 +480,7 @@ int zmq::socket_base_t::send (::zmq_msg_t *msg_, int flags_)
|
|
480
480
|
}
|
481
481
|
|
482
482
|
// Process pending commands, if any.
|
483
|
-
int rc = process_commands (
|
483
|
+
int rc = process_commands (0, true);
|
484
484
|
if (unlikely (rc != 0))
|
485
485
|
return -1;
|
486
486
|
|
@@ -492,20 +492,37 @@ int zmq::socket_base_t::send (::zmq_msg_t *msg_, int flags_)
|
|
492
492
|
rc = xsend (msg_, flags_);
|
493
493
|
if (rc == 0)
|
494
494
|
return 0;
|
495
|
+
if (unlikely (errno != EAGAIN))
|
496
|
+
return -1;
|
495
497
|
|
496
498
|
// In case of non-blocking send we'll simply propagate
|
497
499
|
// the error - including EAGAIN - upwards.
|
498
500
|
if (flags_ & ZMQ_NOBLOCK)
|
499
501
|
return -1;
|
500
502
|
|
503
|
+
// Compute the time when the timeout should occur.
|
504
|
+
// If the timeout is infite, don't care.
|
505
|
+
clock_t clock ;
|
506
|
+
int timeout = -1;
|
507
|
+
uint64_t end = timeout < 0 ? 0 : (clock.now_ms () + timeout);
|
508
|
+
|
501
509
|
// Oops, we couldn't send the message. Wait for the next
|
502
510
|
// command, process it and try to send the message again.
|
503
|
-
while (
|
504
|
-
if (
|
505
|
-
return -1;
|
506
|
-
if (unlikely (process_commands (true, false) != 0))
|
511
|
+
while (true) {
|
512
|
+
if (unlikely (process_commands (timeout, false) != 0))
|
507
513
|
return -1;
|
508
514
|
rc = xsend (msg_, flags_);
|
515
|
+
if (rc == 0)
|
516
|
+
break;
|
517
|
+
if (unlikely (errno != EAGAIN))
|
518
|
+
return -1;
|
519
|
+
if (timeout > 0) {
|
520
|
+
timeout = (int) (end - clock.now_ms ());
|
521
|
+
if (timeout <= 0) {
|
522
|
+
errno = EAGAIN;
|
523
|
+
return -1;
|
524
|
+
}
|
525
|
+
}
|
509
526
|
}
|
510
527
|
return 0;
|
511
528
|
}
|
@@ -526,6 +543,8 @@ int zmq::socket_base_t::recv (::zmq_msg_t *msg_, int flags_)
|
|
526
543
|
|
527
544
|
// Get the message.
|
528
545
|
int rc = xrecv (msg_, flags_);
|
546
|
+
if (unlikely (rc != 0 && errno != EAGAIN))
|
547
|
+
return -1;
|
529
548
|
int err = errno;
|
530
549
|
|
531
550
|
// Once every inbound_poll_rate messages check for signals and process
|
@@ -537,7 +556,7 @@ int zmq::socket_base_t::recv (::zmq_msg_t *msg_, int flags_)
|
|
537
556
|
// described above) from the one used by 'send'. This is because counting
|
538
557
|
// ticks is more efficient than doing RDTSC all the time.
|
539
558
|
if (++ticks == inbound_poll_rate) {
|
540
|
-
if (unlikely (process_commands (
|
559
|
+
if (unlikely (process_commands (0, false) != 0))
|
541
560
|
return -1;
|
542
561
|
ticks = 0;
|
543
562
|
}
|
@@ -560,7 +579,7 @@ int zmq::socket_base_t::recv (::zmq_msg_t *msg_, int flags_)
|
|
560
579
|
if (flags_ & ZMQ_NOBLOCK) {
|
561
580
|
if (errno != EAGAIN)
|
562
581
|
return -1;
|
563
|
-
if (unlikely (process_commands (
|
582
|
+
if (unlikely (process_commands (0, false) != 0))
|
564
583
|
return -1;
|
565
584
|
ticks = 0;
|
566
585
|
|
@@ -573,17 +592,33 @@ int zmq::socket_base_t::recv (::zmq_msg_t *msg_, int flags_)
|
|
573
592
|
return rc;
|
574
593
|
}
|
575
594
|
|
595
|
+
// Compute the time when the timeout should occur.
|
596
|
+
// If the timeout is infite, don't care.
|
597
|
+
clock_t clock ;
|
598
|
+
int timeout = -1;
|
599
|
+
uint64_t end = timeout < 0 ? 0 : (clock.now_ms () + timeout);
|
600
|
+
|
576
601
|
// In blocking scenario, commands are processed over and over again until
|
577
602
|
// we are able to fetch a message.
|
578
603
|
bool block = (ticks != 0);
|
579
|
-
while (
|
580
|
-
if (
|
581
|
-
return -1;
|
582
|
-
if (unlikely (process_commands (block, false) != 0))
|
604
|
+
while (true) {
|
605
|
+
if (unlikely (process_commands (block ? timeout : 0, false) != 0))
|
583
606
|
return -1;
|
584
607
|
rc = xrecv (msg_, flags_);
|
585
|
-
|
608
|
+
if (rc == 0) {
|
609
|
+
ticks = 0;
|
610
|
+
break;
|
611
|
+
}
|
612
|
+
if (unlikely (errno != EAGAIN))
|
613
|
+
return -1;
|
586
614
|
block = true;
|
615
|
+
if (timeout > 0) {
|
616
|
+
timeout = (int) (end - clock.now_ms ());
|
617
|
+
if (timeout <= 0) {
|
618
|
+
errno = EAGAIN;
|
619
|
+
return -1;
|
620
|
+
}
|
621
|
+
}
|
587
622
|
}
|
588
623
|
|
589
624
|
rcvmore = msg_->flags & ZMQ_MSG_MORE;
|
@@ -655,18 +690,20 @@ void zmq::socket_base_t::start_reaping (poller_t *poller_)
|
|
655
690
|
poller->set_pollin (handle);
|
656
691
|
}
|
657
692
|
|
658
|
-
int zmq::socket_base_t::process_commands (
|
693
|
+
int zmq::socket_base_t::process_commands (int timeout_, bool throttle_)
|
659
694
|
{
|
660
695
|
int rc;
|
661
696
|
command_t cmd;
|
662
|
-
if (
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
errno_assert (rc == 0);
|
697
|
+
if (timeout_ != 0) {
|
698
|
+
|
699
|
+
// If we are asked to wait, simply ask mailbox to wait.
|
700
|
+
rc = mailbox.recv (&cmd, timeout_);
|
667
701
|
}
|
668
702
|
else {
|
669
703
|
|
704
|
+
// If we are asked not to wait, check whether we haven't processed
|
705
|
+
// commands recently, so that we can throttle the new commands.
|
706
|
+
|
670
707
|
// Get the CPU's tick counter. If 0, the counter is not available.
|
671
708
|
uint64_t tsc = zmq::clock_t::rdtsc ();
|
672
709
|
|
@@ -687,7 +724,7 @@ int zmq::socket_base_t::process_commands (bool block_, bool throttle_)
|
|
687
724
|
}
|
688
725
|
|
689
726
|
// Check whether there are any commands pending for this thread.
|
690
|
-
rc = mailbox.recv (&cmd,
|
727
|
+
rc = mailbox.recv (&cmd, 0);
|
691
728
|
}
|
692
729
|
|
693
730
|
// Process all the commands available at the moment.
|
@@ -698,7 +735,7 @@ int zmq::socket_base_t::process_commands (bool block_, bool throttle_)
|
|
698
735
|
return -1;
|
699
736
|
errno_assert (rc == 0);
|
700
737
|
cmd.destination->process_command (cmd);
|
701
|
-
rc = mailbox.recv (&cmd,
|
738
|
+
rc = mailbox.recv (&cmd, 0);
|
702
739
|
}
|
703
740
|
|
704
741
|
if (ctx_terminated) {
|
@@ -162,11 +162,11 @@ namespace zmq
|
|
162
162
|
void attach_pipes (class reader_t *inpipe_, class writer_t *outpipe_,
|
163
163
|
const blob_t &peer_identity_);
|
164
164
|
|
165
|
-
// Processes commands sent to this socket (if any). If
|
166
|
-
//
|
165
|
+
// Processes commands sent to this socket (if any). If timeout is -1,
|
166
|
+
// returns only after at least one command was processed.
|
167
167
|
// If throttle argument is true, commands are processed at most once
|
168
168
|
// in a predefined time period.
|
169
|
-
int process_commands (
|
169
|
+
int process_commands (int timeout_, bool throttle_);
|
170
170
|
|
171
171
|
// Handlers for incoming commands.
|
172
172
|
void process_stop ();
|
File without changes
|
File without changes
|
File without changes
|
@@ -111,7 +111,7 @@ int zmq::swap_t::init ()
|
|
111
111
|
if (fd == -1)
|
112
112
|
return -1;
|
113
113
|
|
114
|
-
#
|
114
|
+
#if (defined (ZMQ_HAVE_LINUX) && !defined (ZMQ_HAVE_ANDROID))
|
115
115
|
// Enable more aggresive read-ahead optimization.
|
116
116
|
posix_fadvise (fd, 0, filesize, POSIX_FADV_SEQUENTIAL);
|
117
117
|
#endif
|
@@ -135,8 +135,6 @@ bool zmq::swap_t::store (zmq_msg_t *msg_)
|
|
135
135
|
copy_to_file (&msg_flags, sizeof msg_flags);
|
136
136
|
copy_to_file (zmq_msg_data (msg_), msg_size);
|
137
137
|
|
138
|
-
zmq_msg_close (msg_);
|
139
|
-
|
140
138
|
return true;
|
141
139
|
}
|
142
140
|
|
@@ -214,7 +212,7 @@ void zmq::swap_t::copy_from_file (void *buffer_, size_t count_)
|
|
214
212
|
size_t chunk_size, remainder = count_;
|
215
213
|
|
216
214
|
while (remainder > 0) {
|
217
|
-
chunk_size = std::min (remainder,
|
215
|
+
chunk_size = std::min (remainder,
|
218
216
|
std::min ((size_t) (filesize - read_pos),
|
219
217
|
(size_t) (block_size - read_pos % block_size)));
|
220
218
|
|
@@ -238,7 +236,7 @@ void zmq::swap_t::copy_to_file (const void *buffer_, size_t count_)
|
|
238
236
|
size_t chunk_size, remainder = count_;
|
239
237
|
|
240
238
|
while (remainder > 0) {
|
241
|
-
chunk_size = std::min (remainder,
|
239
|
+
chunk_size = std::min (remainder,
|
242
240
|
std::min ((size_t) (filesize - write_pos),
|
243
241
|
(size_t) (block_size - write_pos % block_size)));
|
244
242
|
|
File without changes
|
@@ -297,7 +297,8 @@ zmq::fd_t zmq::tcp_connecter_t::connect ()
|
|
297
297
|
// Networking problems are OK. No need to assert.
|
298
298
|
errno = err;
|
299
299
|
errno_assert (errno == ECONNREFUSED || errno == ECONNRESET ||
|
300
|
-
errno == ETIMEDOUT || errno == EHOSTUNREACH
|
300
|
+
errno == ETIMEDOUT || errno == EHOSTUNREACH ||
|
301
|
+
errno == ENETUNREACH);
|
301
302
|
|
302
303
|
return retired_fd;
|
303
304
|
}
|
File without changes
|
File without changes
|
File without changes
|
@@ -162,6 +162,11 @@ int zmq::tcp_socket_t::open (fd_t fd_, uint64_t sndbuf_, uint64_t rcvbuf_)
|
|
162
162
|
errno_assert (rc == 0);
|
163
163
|
}
|
164
164
|
|
165
|
+
#if defined ZMQ_HAVE_OSX || defined ZMQ_HAVE_FREEBSD
|
166
|
+
int set = 1;
|
167
|
+
int rc = setsockopt (s, SOL_SOCKET, SO_NOSIGPIPE, &set, sizeof (int));
|
168
|
+
errno_assert (rc == 0);
|
169
|
+
#endif
|
165
170
|
return 0;
|
166
171
|
}
|
167
172
|
|
File without changes
|
@@ -40,7 +40,7 @@ void zmq::thread_t::start (thread_fn *tfn_, void *arg_)
|
|
40
40
|
arg =arg_;
|
41
41
|
descriptor = (HANDLE) _beginthreadex (NULL, 0,
|
42
42
|
&::thread_routine, this, 0 , NULL);
|
43
|
-
win_assert (descriptor != NULL);
|
43
|
+
win_assert (descriptor != NULL);
|
44
44
|
}
|
45
45
|
|
46
46
|
void zmq::thread_t::stop ()
|
@@ -59,17 +59,19 @@ extern "C"
|
|
59
59
|
{
|
60
60
|
static void *thread_routine (void *arg_)
|
61
61
|
{
|
62
|
-
|
62
|
+
#if !defined ZMQ_HAVE_OPENVMS
|
63
63
|
// Following code will guarantee more predictable latecnies as it'll
|
64
64
|
// disallow any signal handling in the I/O thread.
|
65
65
|
sigset_t signal_set;
|
66
66
|
int rc = sigfillset (&signal_set);
|
67
67
|
errno_assert (rc == 0);
|
68
|
+
# if !defined ZMQ_HAVE_ANDROID
|
68
69
|
rc = pthread_sigmask (SIG_BLOCK, &signal_set, NULL);
|
69
|
-
|
70
|
-
|
70
|
+
posix_assert (rc);
|
71
|
+
# endif
|
72
|
+
#endif
|
71
73
|
|
72
|
-
zmq::thread_t *self = (zmq::thread_t*) arg_;
|
74
|
+
zmq::thread_t *self = (zmq::thread_t*) arg_;
|
73
75
|
self->tfn (self->arg);
|
74
76
|
return NULL;
|
75
77
|
}
|
@@ -80,13 +82,13 @@ void zmq::thread_t::start (thread_fn *tfn_, void *arg_)
|
|
80
82
|
tfn = tfn_;
|
81
83
|
arg =arg_;
|
82
84
|
int rc = pthread_create (&descriptor, NULL, thread_routine, this);
|
83
|
-
|
85
|
+
posix_assert (rc);
|
84
86
|
}
|
85
87
|
|
86
88
|
void zmq::thread_t::stop ()
|
87
89
|
{
|
88
90
|
int rc = pthread_join (descriptor, NULL);
|
89
|
-
|
91
|
+
posix_assert (rc);
|
90
92
|
}
|
91
93
|
|
92
94
|
#endif
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,177 @@
|
|
1
|
+
/*
|
2
|
+
Copyright (c) 2007-2011 iMatix Corporation
|
3
|
+
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
4
|
+
|
5
|
+
This file is part of 0MQ.
|
6
|
+
|
7
|
+
0MQ is free software; you can redistribute it and/or modify it under
|
8
|
+
the terms of the GNU Lesser General Public License as published by
|
9
|
+
the Free Software Foundation; either version 3 of the License, or
|
10
|
+
(at your option) any later version.
|
11
|
+
|
12
|
+
0MQ is distributed in the hope that it will be useful,
|
13
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
GNU Lesser General Public License for more details.
|
16
|
+
|
17
|
+
You should have received a copy of the GNU Lesser General Public License
|
18
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
*/
|
20
|
+
|
21
|
+
#ifndef __ZMQ_WINDOWS_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_WINDOWS_HPP_INCLUDED__
|
23
|
+
|
24
|
+
// The purpose of this header file is to turn on only the items actually needed
|
25
|
+
// on the windows platform.
|
26
|
+
|
27
|
+
// Disable deprecation warning.
|
28
|
+
#define _CRT_SECURE_NO_WARNINGS
|
29
|
+
|
30
|
+
#ifndef WIN32_LEAN_AND_MEAN
|
31
|
+
#define WIN32_LEAN_AND_MEAN
|
32
|
+
#endif
|
33
|
+
#ifndef NOGDICAPMASKS
|
34
|
+
#define NOGDICAPMASKS // CC_*, LC_*, PC_*, CP_*, TC_*, RC_
|
35
|
+
#endif
|
36
|
+
#ifndef NOVIRTUALKEYCODES
|
37
|
+
#define NOVIRTUALKEYCODES // VK_*
|
38
|
+
#endif
|
39
|
+
#ifndef NOWINMESSAGES
|
40
|
+
#define NOWINMESSAGES // WM_*, EM_*, LB_*, CB_*
|
41
|
+
#endif
|
42
|
+
#ifndef NOWINSTYLES
|
43
|
+
#define NOWINSTYLES // WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_*
|
44
|
+
#endif
|
45
|
+
#ifndef NOSYSMETRICS
|
46
|
+
#define NOSYSMETRICS // SM_*
|
47
|
+
#endif
|
48
|
+
#ifndef NOMENUS
|
49
|
+
#define NOMENUS // MF_*
|
50
|
+
#endif
|
51
|
+
#ifndef NOICONS
|
52
|
+
#define NOICONS // IDI_*
|
53
|
+
#endif
|
54
|
+
#ifndef NOKEYSTATES
|
55
|
+
#define NOKEYSTATES // MK_*
|
56
|
+
#endif
|
57
|
+
#ifndef NOSYSCOMMANDS
|
58
|
+
#define NOSYSCOMMANDS // SC_*
|
59
|
+
#endif
|
60
|
+
#ifndef NORASTEROPS
|
61
|
+
#define NORASTEROPS // Binary and Tertiary raster ops
|
62
|
+
#endif
|
63
|
+
#ifndef NOSHOWWINDOW
|
64
|
+
#define NOSHOWWINDOW // SW_*
|
65
|
+
#endif
|
66
|
+
#ifndef OEMRESOURCE
|
67
|
+
#define OEMRESOURCE // OEM Resource values
|
68
|
+
#endif
|
69
|
+
#ifndef NOATOM
|
70
|
+
#define NOATOM // Atom Manager routines
|
71
|
+
#endif
|
72
|
+
#ifndef NOCLIPBOARD
|
73
|
+
#define NOCLIPBOARD // Clipboard routines
|
74
|
+
#endif
|
75
|
+
#ifndef NOCOLOR
|
76
|
+
#define NOCOLOR // Screen colors
|
77
|
+
#endif
|
78
|
+
#ifndef NOCTLMGR
|
79
|
+
#define NOCTLMGR // Control and Dialog routines
|
80
|
+
#endif
|
81
|
+
#ifndef NODRAWTEXT
|
82
|
+
#define NODRAWTEXT // DrawText() and DT_*
|
83
|
+
#endif
|
84
|
+
#ifndef NOGDI
|
85
|
+
#define NOGDI // All GDI defines and routines
|
86
|
+
#endif
|
87
|
+
#ifndef NOKERNEL
|
88
|
+
#define NOKERNEL // All KERNEL defines and routines
|
89
|
+
#endif
|
90
|
+
#ifndef NOUSER
|
91
|
+
#define NOUSER // All USER defines and routines
|
92
|
+
#endif
|
93
|
+
#ifndef NONLS
|
94
|
+
#define NONLS // All NLS defines and routines
|
95
|
+
#endif
|
96
|
+
#ifndef NOMB
|
97
|
+
#define NOMB // MB_* and MessageBox()
|
98
|
+
#endif
|
99
|
+
#ifndef NOMEMMGR
|
100
|
+
#define NOMEMMGR // GMEM_*, LMEM_*, GHND, LHND, associated routines
|
101
|
+
#endif
|
102
|
+
#ifndef NOMETAFILE
|
103
|
+
#define NOMETAFILE // typedef METAFILEPICT
|
104
|
+
#endif
|
105
|
+
#ifndef NOMINMAX
|
106
|
+
#define NOMINMAX // Macros min(a,b) and max(a,b)
|
107
|
+
#endif
|
108
|
+
#ifndef NOMSG
|
109
|
+
#define NOMSG // typedef MSG and associated routines
|
110
|
+
#endif
|
111
|
+
#ifndef NOOPENFILE
|
112
|
+
#define NOOPENFILE // OpenFile(), OemToAnsi, AnsiToOem, and OF_*
|
113
|
+
#endif
|
114
|
+
#ifndef NOSCROLL
|
115
|
+
#define NOSCROLL // SB_* and scrolling routines
|
116
|
+
#endif
|
117
|
+
#ifndef NOSERVICE
|
118
|
+
#define NOSERVICE // All Service Controller routines, SERVICE_ equates, etc.
|
119
|
+
#endif
|
120
|
+
#ifndef NOSOUND
|
121
|
+
#define NOSOUND // Sound driver routines
|
122
|
+
#endif
|
123
|
+
#ifndef NOTEXTMETRIC
|
124
|
+
#define NOTEXTMETRIC // typedef TEXTMETRIC and associated routines
|
125
|
+
#endif
|
126
|
+
#ifndef NOWH
|
127
|
+
#define NOWH // SetWindowsHook and WH_*
|
128
|
+
#endif
|
129
|
+
#ifndef NOWINOFFSETS
|
130
|
+
#define NOWINOFFSETS // GWL_*, GCL_*, associated routines
|
131
|
+
#endif
|
132
|
+
#ifndef NOCOMM
|
133
|
+
#define NOCOMM // COMM driver routines
|
134
|
+
#endif
|
135
|
+
#ifndef NOKANJI
|
136
|
+
#define NOKANJI // Kanji support stuff.
|
137
|
+
#endif
|
138
|
+
#ifndef NOHELP
|
139
|
+
#define NOHELP // Help engine interface.
|
140
|
+
#endif
|
141
|
+
#ifndef NOPROFILER
|
142
|
+
#define NOPROFILER // Profiler interface.
|
143
|
+
#endif
|
144
|
+
#ifndef NODEFERWINDOWPOS
|
145
|
+
#define NODEFERWINDOWPOS // DeferWindowPos routines
|
146
|
+
#endif
|
147
|
+
#ifndef NOMCX
|
148
|
+
#define NOMCX // Modem Configuration ExtensionsA
|
149
|
+
#endif
|
150
|
+
|
151
|
+
// Set target version to Windows Server 2003, Windows XP/SP1 or higher.
|
152
|
+
#ifndef _WIN32_WINNT
|
153
|
+
#define _WIN32_WINNT 0x0501
|
154
|
+
#endif
|
155
|
+
|
156
|
+
#include <windows.h>
|
157
|
+
|
158
|
+
#ifdef __MINGW32__
|
159
|
+
// Require Windows XP or higher with MinGW for getaddrinfo().
|
160
|
+
#if(_WIN32_WINNT >= 0x0501)
|
161
|
+
#else
|
162
|
+
#undef _WIN32_WINNT
|
163
|
+
#define _WIN32_WINNT 0x0501
|
164
|
+
#endif /* _WIN32_WINNT >= 0x0501 */
|
165
|
+
#endif /* __MINGW32__ */
|
166
|
+
|
167
|
+
#include <winsock2.h>
|
168
|
+
#include <mswsock.h>
|
169
|
+
#include <ws2tcpip.h>
|
170
|
+
#include <ipexport.h>
|
171
|
+
#include <process.h>
|
172
|
+
|
173
|
+
// On mingw environment AI_NUMERICSERV is not defined, needed in ip.cpp.
|
174
|
+
#ifndef AI_NUMERICSERV
|
175
|
+
#define AI_NUMERICSERV 0x0400
|
176
|
+
#endif
|
177
|
+
#endif
|