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.
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