libzmq 0.0.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (300) hide show
  1. data/libzmq/Makefile +2 -2
  2. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/AUTHORS +3 -0
  3. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/COPYING +0 -0
  4. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/COPYING.LESSER +0 -0
  5. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/ChangeLog +663 -0
  6. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/INSTALL +0 -0
  7. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/MAINTAINERS +7 -7
  8. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/Makefile.am +0 -0
  9. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/Makefile.in +0 -0
  10. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/NEWS +68 -21
  11. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/README +0 -0
  12. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/acinclude.m4 +0 -0
  13. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/aclocal.m4 +2 -2
  14. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/autogen.sh +4 -4
  15. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/Makefile.am +3 -1
  16. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/Makefile.in +3 -1
  17. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/c_local_lat/c_local_lat.vcproj +0 -0
  18. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/c_local_thr/c_local_thr.vcproj +0 -0
  19. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/c_remote_lat/c_remote_lat.vcproj +0 -0
  20. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/c_remote_thr/c_remote_thr.vcproj +0 -0
  21. data/libzmq/zeromq-2.1.9/builds/msvc/inproc_lat/inproc_lat.vcproj +174 -0
  22. data/libzmq/zeromq-2.1.9/builds/msvc/inproc_thr/inproc_thr.vcproj +174 -0
  23. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/libzmq/libzmq.vcproj +4 -0
  24. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/msvc.sln +0 -0
  25. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/msvc/platform.hpp +0 -0
  26. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/builds/redhat/zeromq.spec.in +0 -0
  27. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/compile +0 -0
  28. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/config.guess +0 -0
  29. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/config.sub +0 -0
  30. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/depcomp +0 -0
  31. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/install-sh +0 -0
  32. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/libtool.m4 +0 -0
  33. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/ltmain.sh +2 -2
  34. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/ltoptions.m4 +0 -0
  35. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/ltsugar.m4 +0 -0
  36. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/ltversion.m4 +0 -0
  37. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/lt~obsolete.m4 +0 -0
  38. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/config/missing +0 -0
  39. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/configure +18 -10
  40. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/configure.in +6 -0
  41. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/Makefile.am +0 -0
  42. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/Makefile.in +0 -0
  43. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/asciidoc.conf +0 -0
  44. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq.7 +3 -3
  45. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq.html +86 -72
  46. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq.txt +0 -0
  47. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_bind.3 +8 -3
  48. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_bind.html +67 -65
  49. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_bind.txt +2 -0
  50. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_close.3 +3 -3
  51. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_close.html +57 -65
  52. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_close.txt +0 -0
  53. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_connect.3 +8 -3
  54. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_connect.html +67 -65
  55. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_connect.txt +2 -0
  56. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_cpp.7 +3 -3
  57. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_cpp.html +127 -109
  58. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_cpp.txt +0 -0
  59. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_device.3 +3 -3
  60. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_device.html +67 -65
  61. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_device.txt +0 -0
  62. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_epgm.7 +5 -5
  63. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_epgm.html +67 -69
  64. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_epgm.txt +2 -2
  65. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_errno.3 +3 -3
  66. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_errno.html +57 -65
  67. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_errno.txt +0 -0
  68. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_getsockopt.3 +4 -4
  69. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_getsockopt.html +114 -84
  70. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_getsockopt.txt +1 -1
  71. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_init.3 +3 -3
  72. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_init.html +57 -65
  73. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_init.txt +0 -0
  74. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_inproc.7 +3 -3
  75. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_inproc.html +63 -67
  76. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_inproc.txt +0 -0
  77. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_ipc.7 +3 -3
  78. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_ipc.html +63 -67
  79. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_ipc.txt +0 -0
  80. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_close.3 +3 -3
  81. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_close.html +56 -64
  82. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_close.txt +0 -0
  83. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_copy.3 +3 -3
  84. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_copy.html +56 -64
  85. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_copy.txt +0 -0
  86. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_data.3 +3 -3
  87. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_data.html +57 -65
  88. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_data.txt +0 -0
  89. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init.3 +3 -3
  90. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init.html +59 -65
  91. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init.txt +0 -0
  92. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init_data.3 +3 -3
  93. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init_data.html +59 -65
  94. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init_data.txt +0 -0
  95. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init_size.3 +3 -3
  96. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init_size.html +57 -65
  97. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_init_size.txt +0 -0
  98. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_move.3 +3 -3
  99. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_move.html +56 -64
  100. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_move.txt +0 -0
  101. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_size.3 +4 -4
  102. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_size.html +58 -66
  103. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_msg_size.txt +1 -1
  104. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_pgm.7 +5 -5
  105. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_pgm.html +67 -69
  106. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_pgm.txt +2 -2
  107. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_poll.3 +3 -3
  108. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_poll.html +59 -65
  109. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_poll.txt +0 -0
  110. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_recv.3 +3 -3
  111. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_recv.html +62 -66
  112. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_recv.txt +0 -0
  113. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_send.3 +3 -3
  114. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_send.html +62 -66
  115. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_send.txt +0 -0
  116. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_setsockopt.3 +4 -4
  117. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_setsockopt.html +108 -82
  118. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_setsockopt.txt +1 -1
  119. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_socket.3 +5 -5
  120. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_socket.html +89 -71
  121. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_socket.txt +2 -2
  122. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_strerror.3 +3 -3
  123. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_strerror.html +59 -65
  124. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_strerror.txt +0 -0
  125. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_tcp.7 +4 -4
  126. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_tcp.html +64 -68
  127. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_tcp.txt +1 -1
  128. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_term.3 +3 -3
  129. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_term.html +57 -65
  130. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_term.txt +0 -0
  131. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_version.3 +3 -3
  132. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_version.html +59 -65
  133. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/doc/zmq_version.txt +0 -0
  134. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/foreign/openpgm/Makefile.am +0 -0
  135. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/foreign/openpgm/Makefile.in +0 -0
  136. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/foreign/openpgm/libpgm-5.1.115~dfsg.tar.gz +0 -0
  137. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/foreign/xmlParser/xmlParser.cpp +0 -0
  138. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/foreign/xmlParser/xmlParser.hpp +0 -0
  139. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/include/zmq.h +2 -2
  140. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/include/zmq.hpp +0 -0
  141. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/include/zmq_utils.h +0 -0
  142. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/Makefile.am +0 -0
  143. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/Makefile.in +0 -0
  144. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/inproc_lat.cpp +0 -0
  145. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/inproc_thr.cpp +0 -0
  146. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/local_lat.cpp +0 -0
  147. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/local_thr.cpp +1 -1
  148. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/remote_lat.cpp +0 -0
  149. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/perf/remote_thr.cpp +0 -0
  150. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/Makefile.am +2 -0
  151. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/Makefile.in +20 -8
  152. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/array.hpp +0 -0
  153. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/atomic_counter.hpp +0 -0
  154. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/atomic_ptr.hpp +0 -0
  155. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/blob.hpp +0 -0
  156. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/clock.cpp +0 -0
  157. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/clock.hpp +0 -0
  158. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/command.cpp +0 -0
  159. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/command.hpp +0 -0
  160. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/config.hpp +7 -0
  161. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/connect_session.cpp +0 -0
  162. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/connect_session.hpp +0 -0
  163. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/ctx.cpp +8 -6
  164. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/ctx.hpp +0 -0
  165. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/decoder.cpp +0 -0
  166. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/decoder.hpp +0 -0
  167. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/device.cpp +0 -0
  168. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/device.hpp +0 -0
  169. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/devpoll.cpp +0 -0
  170. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/devpoll.hpp +0 -0
  171. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/dist.cpp +0 -0
  172. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/dist.hpp +0 -0
  173. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/encoder.cpp +0 -0
  174. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/encoder.hpp +0 -0
  175. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/epoll.cpp +0 -0
  176. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/epoll.hpp +0 -0
  177. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/err.cpp +0 -0
  178. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/err.hpp +0 -0
  179. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/fd.hpp +0 -0
  180. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/fq.cpp +0 -0
  181. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/fq.hpp +0 -0
  182. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/i_engine.hpp +0 -0
  183. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/i_inout.hpp +0 -0
  184. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/i_poll_events.hpp +0 -0
  185. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/io_object.cpp +0 -0
  186. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/io_object.hpp +0 -0
  187. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/io_thread.cpp +1 -1
  188. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/io_thread.hpp +0 -0
  189. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/ip.cpp +10 -10
  190. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/ip.hpp +0 -0
  191. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/kqueue.cpp +0 -0
  192. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/kqueue.hpp +0 -0
  193. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/lb.cpp +0 -0
  194. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/lb.hpp +0 -0
  195. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/libzmq.pc.in +0 -0
  196. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/likely.hpp +0 -0
  197. data/libzmq/zeromq-2.1.9/src/mailbox.cpp +82 -0
  198. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/mailbox.hpp +19 -7
  199. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/msg_content.hpp +0 -0
  200. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/mutex.hpp +0 -0
  201. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/named_session.cpp +0 -0
  202. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/named_session.hpp +0 -0
  203. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/object.cpp +0 -0
  204. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/object.hpp +0 -0
  205. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/options.cpp +0 -0
  206. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/options.hpp +0 -0
  207. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/own.cpp +0 -0
  208. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/own.hpp +0 -0
  209. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pair.cpp +0 -0
  210. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pair.hpp +0 -0
  211. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pgm_receiver.cpp +2 -2
  212. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pgm_receiver.hpp +0 -0
  213. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pgm_sender.cpp +4 -4
  214. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pgm_sender.hpp +0 -0
  215. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pgm_socket.cpp +4 -4
  216. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pgm_socket.hpp +4 -3
  217. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pipe.cpp +0 -0
  218. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pipe.hpp +0 -0
  219. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/platform.hpp.in +3 -0
  220. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/poll.cpp +0 -0
  221. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/poll.hpp +0 -0
  222. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/poller.hpp +0 -0
  223. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/poller_base.cpp +0 -0
  224. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/poller_base.hpp +0 -0
  225. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pub.cpp +0 -0
  226. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pub.hpp +0 -0
  227. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pull.cpp +0 -0
  228. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/pull.hpp +0 -0
  229. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/push.cpp +0 -0
  230. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/push.hpp +0 -0
  231. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/reaper.cpp +1 -1
  232. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/reaper.hpp +0 -0
  233. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/rep.cpp +1 -1
  234. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/rep.hpp +0 -0
  235. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/req.cpp +0 -0
  236. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/req.hpp +0 -0
  237. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/select.cpp +5 -4
  238. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/select.hpp +0 -0
  239. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/semaphore.hpp +0 -0
  240. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/session.cpp +0 -0
  241. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/session.hpp +0 -0
  242. data/libzmq/{zeromq-2.1.7/src/mailbox.cpp → zeromq-2.1.9/src/signaler.cpp} +135 -173
  243. data/libzmq/zeromq-2.1.9/src/signaler.hpp +63 -0
  244. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/socket_base.cpp +58 -21
  245. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/socket_base.hpp +3 -3
  246. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/stdint.hpp +0 -0
  247. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/sub.cpp +0 -0
  248. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/sub.hpp +0 -0
  249. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/swap.cpp +3 -5
  250. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/swap.hpp +0 -0
  251. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/tcp_connecter.cpp +2 -1
  252. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/tcp_connecter.hpp +0 -0
  253. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/tcp_listener.cpp +0 -0
  254. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/tcp_listener.hpp +0 -0
  255. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/tcp_socket.cpp +5 -0
  256. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/tcp_socket.hpp +0 -0
  257. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/thread.cpp +9 -7
  258. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/thread.hpp +0 -0
  259. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/transient_session.cpp +0 -0
  260. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/transient_session.hpp +0 -0
  261. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/trie.cpp +0 -0
  262. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/trie.hpp +0 -0
  263. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/uuid.cpp +0 -0
  264. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/uuid.hpp +0 -0
  265. data/libzmq/zeromq-2.1.9/src/windows.hpp +177 -0
  266. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/wire.hpp +0 -0
  267. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xpub.cpp +0 -0
  268. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xpub.hpp +0 -0
  269. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xrep.cpp +0 -4
  270. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xrep.hpp +0 -0
  271. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xreq.cpp +0 -0
  272. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xreq.hpp +0 -0
  273. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xsub.cpp +0 -0
  274. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/xsub.hpp +0 -0
  275. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/ypipe.hpp +0 -0
  276. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/yqueue.hpp +0 -0
  277. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq.cpp +17 -7
  278. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_connecter.cpp +0 -0
  279. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_connecter.hpp +0 -0
  280. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_engine.cpp +0 -0
  281. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_engine.hpp +0 -0
  282. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_init.cpp +0 -0
  283. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_init.hpp +0 -0
  284. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_listener.cpp +0 -0
  285. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/src/zmq_listener.hpp +0 -0
  286. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/Makefile.am +0 -0
  287. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/Makefile.in +0 -0
  288. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_hwm.cpp +0 -0
  289. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_pair_inproc.cpp +0 -0
  290. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_pair_ipc.cpp +0 -0
  291. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_pair_tcp.cpp +0 -0
  292. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_reqrep_inproc.cpp +0 -0
  293. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_reqrep_ipc.cpp +0 -0
  294. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_reqrep_tcp.cpp +0 -0
  295. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/test_shutdown_stress.cpp +1 -1
  296. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/tests/testutil.hpp +0 -0
  297. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/version.sh +0 -0
  298. data/libzmq/{zeromq-2.1.7 → zeromq-2.1.9}/zeromq.spec +1 -1
  299. metadata +299 -295
  300. 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 (false, false);
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 (false, true);
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 (rc != 0) {
504
- if (errno != EAGAIN)
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 (false, false) != 0))
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 (false, false) != 0))
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 (rc != 0) {
580
- if (errno != EAGAIN)
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
- ticks = 0;
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 (bool block_, bool throttle_)
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 (block_) {
663
- rc = mailbox.recv (&cmd, true);
664
- if (rc == -1 && errno == EINTR)
665
- return -1;
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, false);
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, false);
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 'block' is
166
- // set to true, returns only after at least one command was processed.
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 (bool block_, bool throttle_);
169
+ int process_commands (int timeout_, bool throttle_);
170
170
 
171
171
  // Handlers for incoming commands.
172
172
  void process_stop ();
@@ -111,7 +111,7 @@ int zmq::swap_t::init ()
111
111
  if (fd == -1)
112
112
  return -1;
113
113
 
114
- #ifdef ZMQ_HAVE_LINUX
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
 
@@ -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
  }
@@ -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
 
@@ -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
- #if !defined ZMQ_HAVE_OPENVMS
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
- errno_assert (rc == 0);
70
- #endif
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
- errno_assert (rc == 0);
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
- errno_assert (rc == 0);
91
+ posix_assert (rc);
90
92
  }
91
93
 
92
94
  #endif
@@ -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