libzmq 0.0.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|