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
@@ -28,7 +28,7 @@ extern "C" {
28
28
  #include <errno.h>
29
29
  #include <stddef.h>
30
30
  #if defined _WIN32
31
- #include "winsock2.h"
31
+ #include <winsock2.h>
32
32
  #endif
33
33
 
34
34
  /* Handle DSO symbol visibility */
@@ -55,7 +55,7 @@ extern "C" {
55
55
  /* Version macros for compile-time API version detection */
56
56
  #define ZMQ_VERSION_MAJOR 2
57
57
  #define ZMQ_VERSION_MINOR 1
58
- #define ZMQ_VERSION_PATCH 7
58
+ #define ZMQ_VERSION_PATCH 9
59
59
 
60
60
  #define ZMQ_MAKE_VERSION(major, minor, patch) \
61
61
  ((major) * 10000 + (minor) * 100 + (patch))
@@ -115,7 +115,7 @@ int main (int argc, char *argv [])
115
115
 
116
116
  throughput = (unsigned long)
117
117
  ((double) message_count / (double) elapsed * 1000000);
118
- megabits = (double) (throughput * message_size * 8) / 1000000;
118
+ megabits = (double) ((double) throughput * message_size * 8) / 1000000;
119
119
 
120
120
  printf ("message size: %d [B]\n", (int) message_size);
121
121
  printf ("message count: %d\n", (int) message_count);
@@ -58,6 +58,7 @@ libzmq_la_SOURCES = \
58
58
  select.hpp \
59
59
  semaphore.hpp \
60
60
  session.hpp \
61
+ signaler.hpp \
61
62
  socket_base.hpp \
62
63
  stdint.hpp \
63
64
  sub.hpp \
@@ -118,6 +119,7 @@ libzmq_la_SOURCES = \
118
119
  req.cpp \
119
120
  select.cpp \
120
121
  session.cpp \
122
+ signaler.cpp \
121
123
  socket_base.cpp \
122
124
  sub.cpp \
123
125
  swap.cpp \
@@ -93,14 +93,15 @@ am_libzmq_la_OBJECTS = libzmq_la-clock.lo libzmq_la-command.lo \
93
93
  libzmq_la-poller_base.lo libzmq_la-pull.lo libzmq_la-push.lo \
94
94
  libzmq_la-reaper.lo libzmq_la-pub.lo libzmq_la-rep.lo \
95
95
  libzmq_la-req.lo libzmq_la-select.lo libzmq_la-session.lo \
96
- libzmq_la-socket_base.lo libzmq_la-sub.lo libzmq_la-swap.lo \
97
- libzmq_la-tcp_connecter.lo libzmq_la-tcp_listener.lo \
98
- libzmq_la-tcp_socket.lo libzmq_la-thread.lo \
99
- libzmq_la-transient_session.lo libzmq_la-trie.lo \
100
- libzmq_la-uuid.lo libzmq_la-xpub.lo libzmq_la-xrep.lo \
101
- libzmq_la-xreq.lo libzmq_la-xsub.lo libzmq_la-zmq.lo \
102
- libzmq_la-zmq_connecter.lo libzmq_la-zmq_engine.lo \
103
- libzmq_la-zmq_init.lo libzmq_la-zmq_listener.lo
96
+ libzmq_la-signaler.lo libzmq_la-socket_base.lo \
97
+ libzmq_la-sub.lo libzmq_la-swap.lo libzmq_la-tcp_connecter.lo \
98
+ libzmq_la-tcp_listener.lo libzmq_la-tcp_socket.lo \
99
+ libzmq_la-thread.lo libzmq_la-transient_session.lo \
100
+ libzmq_la-trie.lo libzmq_la-uuid.lo libzmq_la-xpub.lo \
101
+ libzmq_la-xrep.lo libzmq_la-xreq.lo libzmq_la-xsub.lo \
102
+ libzmq_la-zmq.lo libzmq_la-zmq_connecter.lo \
103
+ libzmq_la-zmq_engine.lo libzmq_la-zmq_init.lo \
104
+ libzmq_la-zmq_listener.lo
104
105
  libzmq_la_OBJECTS = $(am_libzmq_la_OBJECTS)
105
106
  AM_V_lt = $(am__v_lt_$(V))
106
107
  am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
@@ -350,6 +351,7 @@ libzmq_la_SOURCES = \
350
351
  select.hpp \
351
352
  semaphore.hpp \
352
353
  session.hpp \
354
+ signaler.hpp \
353
355
  socket_base.hpp \
354
356
  stdint.hpp \
355
357
  sub.hpp \
@@ -410,6 +412,7 @@ libzmq_la_SOURCES = \
410
412
  req.cpp \
411
413
  select.cpp \
412
414
  session.cpp \
415
+ signaler.cpp \
413
416
  socket_base.cpp \
414
417
  sub.cpp \
415
418
  swap.cpp \
@@ -566,6 +569,7 @@ distclean-compile:
566
569
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzmq_la-req.Plo@am__quote@
567
570
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzmq_la-select.Plo@am__quote@
568
571
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzmq_la-session.Plo@am__quote@
572
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzmq_la-signaler.Plo@am__quote@
569
573
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzmq_la-socket_base.Plo@am__quote@
570
574
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzmq_la-sub.Plo@am__quote@
571
575
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzmq_la-swap.Plo@am__quote@
@@ -906,6 +910,14 @@ libzmq_la-session.lo: session.cpp
906
910
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
907
911
  @am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzmq_la_CPPFLAGS) $(CPPFLAGS) $(libzmq_la_CXXFLAGS) $(CXXFLAGS) -c -o libzmq_la-session.lo `test -f 'session.cpp' || echo '$(srcdir)/'`session.cpp
908
912
 
913
+ libzmq_la-signaler.lo: signaler.cpp
914
+ @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzmq_la_CPPFLAGS) $(CPPFLAGS) $(libzmq_la_CXXFLAGS) $(CXXFLAGS) -MT libzmq_la-signaler.lo -MD -MP -MF $(DEPDIR)/libzmq_la-signaler.Tpo -c -o libzmq_la-signaler.lo `test -f 'signaler.cpp' || echo '$(srcdir)/'`signaler.cpp
915
+ @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzmq_la-signaler.Tpo $(DEPDIR)/libzmq_la-signaler.Plo
916
+ @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
917
+ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='signaler.cpp' object='libzmq_la-signaler.lo' libtool=yes @AMDEPBACKSLASH@
918
+ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
919
+ @am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzmq_la_CPPFLAGS) $(CPPFLAGS) $(libzmq_la_CXXFLAGS) $(CXXFLAGS) -c -o libzmq_la-signaler.lo `test -f 'signaler.cpp' || echo '$(srcdir)/'`signaler.cpp
920
+
909
921
  libzmq_la-socket_base.lo: socket_base.cpp
910
922
  @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzmq_la_CPPFLAGS) $(CPPFLAGS) $(libzmq_la_CXXFLAGS) $(CXXFLAGS) -MT libzmq_la-socket_base.lo -MD -MP -MF $(DEPDIR)/libzmq_la-socket_base.Tpo -c -o libzmq_la-socket_base.lo `test -f 'socket_base.cpp' || echo '$(srcdir)/'`socket_base.cpp
911
923
  @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzmq_la-socket_base.Tpo $(DEPDIR)/libzmq_la-socket_base.Plo
@@ -36,6 +36,13 @@ namespace zmq
36
36
  // memory allocation by approximately 99.6%
37
37
  message_pipe_granularity = 256,
38
38
 
39
+ // Commands in pipe per allocation event.
40
+ command_pipe_granularity = 16,
41
+
42
+ // Size in bytes of the largest message that is still copied around
43
+ // rather than being reference-counted.
44
+ max_vsm_size = 29,
45
+
39
46
  // Determines how often does socket poll for new commands when it
40
47
  // still has unprocessed messages to handle. Thus, if it is set to 100,
41
48
  // socket will process 100 inbound messages before doing the poll.
@@ -18,21 +18,23 @@
18
18
  along with this program. If not, see <http://www.gnu.org/licenses/>.
19
19
  */
20
20
 
21
+ #include "platform.hpp"
22
+ #if defined ZMQ_HAVE_WINDOWS
23
+ #include "windows.hpp"
24
+ #endif
25
+
21
26
  #include <new>
22
27
  #include <string.h>
23
28
 
24
29
  #include "ctx.hpp"
25
30
  #include "socket_base.hpp"
26
31
  #include "io_thread.hpp"
27
- #include "platform.hpp"
28
32
  #include "reaper.hpp"
29
33
  #include "err.hpp"
30
34
  #include "pipe.hpp"
31
35
 
32
- #if defined ZMQ_HAVE_WINDOWS
33
- #include "windows.h"
34
- #else
35
- #include "unistd.h"
36
+ #if !defined ZMQ_HAVE_WINDOWS
37
+ #include <unistd.h>
36
38
  #endif
37
39
 
38
40
  zmq::ctx_t::ctx_t (uint32_t io_threads_) :
@@ -141,7 +143,7 @@ int zmq::ctx_t::terminate ()
141
143
 
142
144
  // Wait till reaper thread closes all the sockets.
143
145
  command_t cmd;
144
- int rc = term_mailbox.recv (&cmd, true);
146
+ int rc = term_mailbox.recv (&cmd, -1);
145
147
  if (rc == -1 && errno == EINTR)
146
148
  return -1;
147
149
  zmq_assert (rc == 0);
@@ -72,7 +72,7 @@ void zmq::io_thread_t::in_event ()
72
72
 
73
73
  // Get the next command. If there is none, exit.
74
74
  command_t cmd;
75
- int rc = mailbox.recv (&cmd, false);
75
+ int rc = mailbox.recv (&cmd, 0);
76
76
  if (rc != 0 && errno == EINTR)
77
77
  continue;
78
78
  if (rc != 0 && errno == EAGAIN)
@@ -54,7 +54,7 @@ static int resolve_nic_name (in_addr* addr_, char const *interface_)
54
54
  size_t ifr_size = sizeof (struct lifreq) * ifn.lifn_count;
55
55
  char *ifr = (char*) malloc (ifr_size);
56
56
  alloc_assert (ifr);
57
-
57
+
58
58
  // Retrieve interface names.
59
59
  lifconf ifc;
60
60
  ifc.lifc_family = AF_UNSPEC;
@@ -92,7 +92,7 @@ static int resolve_nic_name (in_addr* addr_, char const *interface_)
92
92
  return 0;
93
93
  }
94
94
 
95
- #elif defined ZMQ_HAVE_AIX || ZMQ_HAVE_HPUX
95
+ #elif defined ZMQ_HAVE_AIX || ZMQ_HAVE_HPUX || ZMQ_HAVE_ANDROID
96
96
 
97
97
  #include <sys/types.h>
98
98
  #include <unistd.h>
@@ -105,7 +105,7 @@ static int resolve_nic_name (in_addr* addr_, char const *interface_)
105
105
  int sd = socket (AF_INET, SOCK_DGRAM, 0);
106
106
  zmq_assert (sd != -1);
107
107
 
108
- struct ifreq ifr;
108
+ struct ifreq ifr;
109
109
 
110
110
  // Copy interface name for ioctl get.
111
111
  strncpy (ifr.ifr_name, interface_, sizeof (ifr.ifr_name));
@@ -123,7 +123,7 @@ static int resolve_nic_name (in_addr* addr_, char const *interface_)
123
123
 
124
124
  struct sockaddr *sa = (struct sockaddr *) &ifr.ifr_addr;
125
125
  *addr_ = ((sockaddr_in*)sa)->sin_addr;
126
- return 0;
126
+ return 0;
127
127
  }
128
128
 
129
129
  #elif ((defined ZMQ_HAVE_LINUX || defined ZMQ_HAVE_FREEBSD ||\
@@ -140,14 +140,14 @@ static int resolve_nic_name (in_addr* addr_, char const *interface_)
140
140
  // Get the addresses.
141
141
  ifaddrs* ifa = NULL;
142
142
  int rc = getifaddrs (&ifa);
143
- zmq_assert (rc == 0);
143
+ zmq_assert (rc == 0);
144
144
  zmq_assert (ifa != NULL);
145
145
 
146
146
  // Find the corresponding network interface.
147
147
  bool found = false;
148
148
  for (ifaddrs *ifp = ifa; ifp != NULL ;ifp = ifp->ifa_next)
149
- if (ifp->ifa_addr && ifp->ifa_addr->sa_family == AF_INET
150
- && !strcmp (interface_, ifp->ifa_name))
149
+ if (ifp->ifa_addr && ifp->ifa_addr->sa_family == AF_INET
150
+ && !strcmp (interface_, ifp->ifa_name))
151
151
  {
152
152
  *addr_ = ((sockaddr_in*) ifp->ifa_addr)->sin_addr;
153
153
  found = true;
@@ -294,7 +294,7 @@ int zmq::resolve_ip_hostname (sockaddr_storage *addr_, socklen_t *addr_len_,
294
294
  // Need to choose one to avoid duplicate results from getaddrinfo() - this
295
295
  // doesn't really matter, since it's not included in the addr-output.
296
296
  req.ai_socktype = SOCK_STREAM;
297
-
297
+
298
298
  // Avoid named services due to unclear socktype.
299
299
  req.ai_flags = AI_NUMERICSERV;
300
300
 
@@ -311,9 +311,9 @@ int zmq::resolve_ip_hostname (sockaddr_storage *addr_, socklen_t *addr_len_,
311
311
  zmq_assert ((size_t) (res->ai_addrlen) <= sizeof (*addr_));
312
312
  memcpy (addr_, res->ai_addr, res->ai_addrlen);
313
313
  *addr_len_ = res->ai_addrlen;
314
-
314
+
315
315
  freeaddrinfo (res);
316
-
316
+
317
317
  return 0;
318
318
  }
319
319
 
@@ -0,0 +1,82 @@
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
+ #include "mailbox.hpp"
22
+ #include "platform.hpp"
23
+ #include "err.hpp"
24
+
25
+ zmq::mailbox_t::mailbox_t ()
26
+ {
27
+ // Get the pipe into passive state. That way, if the users starts by
28
+ // polling on the associated file descriptor it will get woken up when
29
+ // new command is posted.
30
+ bool ok = cpipe.read (NULL);
31
+ zmq_assert (!ok);
32
+ active = false;
33
+ }
34
+
35
+ zmq::mailbox_t::~mailbox_t ()
36
+ {
37
+ // TODO: Retrieve and deallocate commands inside the cpipe.
38
+ }
39
+
40
+ zmq::fd_t zmq::mailbox_t::get_fd ()
41
+ {
42
+ return signaler.get_fd ();
43
+ }
44
+
45
+ void zmq::mailbox_t::send (const command_t &cmd_)
46
+ {
47
+ sync.lock ();
48
+ cpipe.write (cmd_, false);
49
+ bool ok = cpipe.flush ();
50
+ sync.unlock ();
51
+ if (!ok)
52
+ signaler.send ();
53
+ }
54
+
55
+ int zmq::mailbox_t::recv (command_t *cmd_, int timeout_)
56
+ {
57
+ // Try to get the command straight away.
58
+ if (active) {
59
+ bool ok = cpipe.read (cmd_);
60
+ if (ok)
61
+ return 0;
62
+
63
+ // If there are no more commands available, switch into passive state.
64
+ active = false;
65
+ signaler.recv ();
66
+ }
67
+
68
+ // Wait for signal from the command sender.
69
+ int rc = signaler.wait (timeout_);
70
+ if (rc != 0 && (errno == EAGAIN || errno == EINTR))
71
+ return -1;
72
+
73
+ // We've got the signal. Now we can switch into active state.
74
+ active = true;
75
+
76
+ // Get a command.
77
+ errno_assert (rc == 0);
78
+ bool ok = cpipe.read (cmd_);
79
+ zmq_assert (ok);
80
+ return 0;
81
+ }
82
+
@@ -24,10 +24,12 @@
24
24
  #include <stddef.h>
25
25
 
26
26
  #include "platform.hpp"
27
+ #include "signaler.hpp"
27
28
  #include "fd.hpp"
28
- #include "stdint.hpp"
29
29
  #include "config.hpp"
30
30
  #include "command.hpp"
31
+ #include "ypipe.hpp"
32
+ #include "mutex.hpp"
31
33
 
32
34
  namespace zmq
33
35
  {
@@ -41,16 +43,26 @@ namespace zmq
41
43
 
42
44
  fd_t get_fd ();
43
45
  void send (const command_t &cmd_);
44
- int recv (command_t *cmd_, bool block_);
46
+ int recv (command_t *cmd_, int timeout_);
45
47
 
46
48
  private:
47
49
 
48
- // Write & read end of the socketpair.
49
- fd_t w;
50
- fd_t r;
50
+ // The pipe to store actual commands.
51
+ typedef ypipe_t <command_t, command_pipe_granularity> cpipe_t;
52
+ cpipe_t cpipe;
51
53
 
52
- // Platform-dependent function to create a socketpair.
53
- static int make_socketpair (fd_t *r_, fd_t *w_);
54
+ // Signaler to pass signals from writer thread to reader thread.
55
+ signaler_t signaler;
56
+
57
+ // There's only one thread receiving from the mailbox, but there
58
+ // is arbitrary number of threads sending. Given that ypipe requires
59
+ // synchronised access on both of its endpoints, we have to synchronise
60
+ // the sending side.
61
+ mutex_t sync;
62
+
63
+ // True if the underlying pipe is active, ie. when we are allowed to
64
+ // read commands from it.
65
+ bool active;
54
66
 
55
67
  // Disable copying of mailbox_t object.
56
68
  mailbox_t (const mailbox_t&);