nutcracker 0.2.4.5 → 0.2.4.6

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 (291) hide show
  1. data/ext/nutcracker/ChangeLog +0 -0
  2. data/ext/nutcracker/LICENSE +0 -0
  3. data/ext/nutcracker/Makefile.am +0 -0
  4. data/ext/nutcracker/Makefile.in +190 -82
  5. data/ext/nutcracker/NOTICE +0 -0
  6. data/ext/nutcracker/README.md +0 -0
  7. data/ext/nutcracker/aclocal.m4 +231 -122
  8. data/ext/nutcracker/conf/nutcracker.leaf.yml +0 -0
  9. data/ext/nutcracker/conf/nutcracker.root.yml +0 -0
  10. data/ext/nutcracker/conf/nutcracker.yml +0 -0
  11. data/ext/nutcracker/config.h.in +0 -15
  12. data/ext/nutcracker/config/config.guess +278 -248
  13. data/ext/nutcracker/config/config.sub +234 -77
  14. data/ext/nutcracker/config/depcomp +143 -39
  15. data/ext/nutcracker/config/install-sh +136 -116
  16. data/ext/nutcracker/config/ltmain.sh +1704 -788
  17. data/ext/nutcracker/config/missing +29 -65
  18. data/ext/nutcracker/configure +1998 -1052
  19. data/ext/nutcracker/configure.ac +2 -34
  20. data/ext/nutcracker/contrib/Makefile.am +0 -0
  21. data/ext/nutcracker/contrib/Makefile.in +120 -47
  22. data/ext/nutcracker/contrib/yaml-0.1.4.tar.gz +0 -0
  23. data/ext/nutcracker/extconf.rb +5 -2
  24. data/ext/nutcracker/m4/libtool.m4 +960 -396
  25. data/ext/nutcracker/m4/ltoptions.m4 +17 -2
  26. data/ext/nutcracker/m4/ltversion.m4 +6 -6
  27. data/ext/nutcracker/notes/c-styleguide.txt +0 -0
  28. data/ext/nutcracker/notes/debug.txt +0 -0
  29. data/ext/nutcracker/notes/memcache.txt +0 -0
  30. data/ext/nutcracker/notes/recommendation.md +0 -0
  31. data/ext/nutcracker/notes/redis.md +0 -0
  32. data/ext/nutcracker/notes/socket.txt +0 -0
  33. data/ext/nutcracker/scripts/nutcracker.init +0 -0
  34. data/ext/nutcracker/scripts/nutcracker.spec +0 -0
  35. data/ext/nutcracker/scripts/redis-check.py +0 -0
  36. data/ext/nutcracker/src/Makefile.am +1 -1
  37. data/ext/nutcracker/src/Makefile.in +167 -81
  38. data/ext/nutcracker/src/hashkit/Makefile.am +0 -0
  39. data/ext/nutcracker/src/hashkit/Makefile.in +72 -37
  40. data/ext/nutcracker/src/hashkit/nc_crc16.c +0 -0
  41. data/ext/nutcracker/src/hashkit/nc_crc32.c +0 -0
  42. data/ext/nutcracker/src/hashkit/nc_fnv.c +0 -0
  43. data/ext/nutcracker/src/hashkit/nc_hashkit.h +0 -0
  44. data/ext/nutcracker/src/hashkit/nc_hsieh.c +0 -0
  45. data/ext/nutcracker/src/hashkit/nc_jenkins.c +0 -0
  46. data/ext/nutcracker/src/hashkit/nc_ketama.c +0 -0
  47. data/ext/nutcracker/src/hashkit/nc_md5.c +0 -0
  48. data/ext/nutcracker/src/hashkit/nc_modula.c +0 -0
  49. data/ext/nutcracker/src/hashkit/nc_murmur.c +0 -0
  50. data/ext/nutcracker/src/hashkit/nc_one_at_a_time.c +0 -0
  51. data/ext/nutcracker/src/hashkit/nc_random.c +0 -0
  52. data/ext/nutcracker/src/nc.c +0 -0
  53. data/ext/nutcracker/src/nc_array.c +0 -0
  54. data/ext/nutcracker/src/nc_array.h +0 -0
  55. data/ext/nutcracker/src/nc_client.c +0 -0
  56. data/ext/nutcracker/src/nc_client.h +0 -0
  57. data/ext/nutcracker/src/nc_conf.c +0 -0
  58. data/ext/nutcracker/src/nc_conf.h +0 -0
  59. data/ext/nutcracker/src/nc_connection.c +0 -0
  60. data/ext/nutcracker/src/nc_connection.h +0 -0
  61. data/ext/nutcracker/src/nc_core.c +26 -29
  62. data/ext/nutcracker/src/nc_core.h +5 -13
  63. data/ext/nutcracker/src/{nc_epoll.c → nc_event.c} +30 -94
  64. data/ext/nutcracker/src/nc_event.h +13 -33
  65. data/ext/nutcracker/src/nc_log.c +0 -0
  66. data/ext/nutcracker/src/nc_log.h +0 -0
  67. data/ext/nutcracker/src/nc_mbuf.c +0 -0
  68. data/ext/nutcracker/src/nc_mbuf.h +0 -0
  69. data/ext/nutcracker/src/nc_message.c +0 -0
  70. data/ext/nutcracker/src/nc_message.h +0 -0
  71. data/ext/nutcracker/src/nc_proxy.c +8 -8
  72. data/ext/nutcracker/src/nc_proxy.h +0 -0
  73. data/ext/nutcracker/src/nc_queue.h +0 -0
  74. data/ext/nutcracker/src/nc_rbtree.c +0 -0
  75. data/ext/nutcracker/src/nc_rbtree.h +0 -0
  76. data/ext/nutcracker/src/nc_request.c +3 -3
  77. data/ext/nutcracker/src/nc_response.c +6 -4
  78. data/ext/nutcracker/src/nc_server.c +5 -5
  79. data/ext/nutcracker/src/nc_server.h +0 -0
  80. data/ext/nutcracker/src/nc_signal.c +0 -0
  81. data/ext/nutcracker/src/nc_signal.h +0 -0
  82. data/ext/nutcracker/src/nc_stats.c +21 -16
  83. data/ext/nutcracker/src/nc_stats.h +4 -3
  84. data/ext/nutcracker/src/nc_string.c +0 -0
  85. data/ext/nutcracker/src/nc_string.h +0 -0
  86. data/ext/nutcracker/src/nc_util.c +0 -16
  87. data/ext/nutcracker/src/nc_util.h +0 -1
  88. data/ext/nutcracker/src/proto/Makefile.am +0 -0
  89. data/ext/nutcracker/src/proto/Makefile.in +72 -37
  90. data/ext/nutcracker/src/proto/nc_memcache.c +0 -0
  91. data/ext/nutcracker/src/proto/nc_proto.h +0 -0
  92. data/ext/nutcracker/src/proto/nc_redis.c +0 -0
  93. data/lib/nutcracker/version.rb +1 -1
  94. metadata +3 -200
  95. data/ext/nutcracker/Makefile +0 -643
  96. data/ext/nutcracker/autom4te.cache/output.0 +0 -18664
  97. data/ext/nutcracker/autom4te.cache/output.1 +0 -18664
  98. data/ext/nutcracker/autom4te.cache/output.2 +0 -18664
  99. data/ext/nutcracker/autom4te.cache/requests +0 -494
  100. data/ext/nutcracker/autom4te.cache/traces.0 +0 -2415
  101. data/ext/nutcracker/autom4te.cache/traces.1 +0 -945
  102. data/ext/nutcracker/autom4te.cache/traces.2 +0 -2415
  103. data/ext/nutcracker/config.h +0 -332
  104. data/ext/nutcracker/config.log +0 -2684
  105. data/ext/nutcracker/config.status +0 -2317
  106. data/ext/nutcracker/contrib/Makefile +0 -494
  107. data/ext/nutcracker/contrib/yaml-0.1.4/Makefile +0 -736
  108. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.0 +0 -13102
  109. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.1 +0 -13085
  110. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.2 +0 -13085
  111. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/requests +0 -476
  112. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.0 +0 -2339
  113. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.1 +0 -545
  114. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.2 +0 -2339
  115. data/ext/nutcracker/contrib/yaml-0.1.4/config.h +0 -81
  116. data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in~ +0 -80
  117. data/ext/nutcracker/contrib/yaml-0.1.4/config.log +0 -688
  118. data/ext/nutcracker/contrib/yaml-0.1.4/config.status +0 -2032
  119. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/annotated.html +0 -51
  120. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/bc_s.png +0 -0
  121. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/classes.html +0 -41
  122. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/closed.png +0 -0
  123. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/doxygen.css +0 -656
  124. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/doxygen.png +0 -0
  125. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/files.html +0 -40
  126. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions.html +0 -91
  127. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x62.html +0 -84
  128. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x63.html +0 -87
  129. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x64.html +0 -83
  130. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x65.html +0 -110
  131. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x66.html +0 -79
  132. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x68.html +0 -80
  133. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x69.html +0 -92
  134. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6b.html +0 -71
  135. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6c.html +0 -88
  136. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6d.html +0 -96
  137. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6e.html +0 -71
  138. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6f.html +0 -80
  139. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x70.html +0 -100
  140. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x71.html +0 -71
  141. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x72.html +0 -87
  142. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x73.html +0 -163
  143. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x74.html +0 -115
  144. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x75.html +0 -71
  145. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x76.html +0 -80
  146. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x77.html +0 -77
  147. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars.html +0 -91
  148. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x62.html +0 -84
  149. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x63.html +0 -87
  150. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x64.html +0 -83
  151. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x65.html +0 -110
  152. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x66.html +0 -79
  153. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x68.html +0 -80
  154. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x69.html +0 -92
  155. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6b.html +0 -71
  156. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6c.html +0 -88
  157. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6d.html +0 -96
  158. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6e.html +0 -71
  159. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6f.html +0 -80
  160. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x70.html +0 -100
  161. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x71.html +0 -71
  162. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x72.html +0 -87
  163. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x73.html +0 -163
  164. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x74.html +0 -115
  165. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x75.html +0 -71
  166. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x76.html +0 -80
  167. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x77.html +0 -77
  168. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals.html +0 -667
  169. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_defs.html +0 -81
  170. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_enum.html +0 -78
  171. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_eval.html +0 -373
  172. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_func.html +0 -196
  173. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_type.html +0 -126
  174. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__basic.html +0 -320
  175. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__emitter.html +0 -819
  176. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__events.html +0 -664
  177. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__export.html +0 -60
  178. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__nodes.html +0 -795
  179. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__parser.html +0 -606
  180. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__styles.html +0 -222
  181. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__tokens.html +0 -246
  182. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__version.html +0 -106
  183. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/index.html +0 -31
  184. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/modules.html +0 -42
  185. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/nav_f.png +0 -0
  186. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/nav_h.png +0 -0
  187. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/open.png +0 -0
  188. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__alias__data__s.html +0 -108
  189. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__document__s.html +0 -235
  190. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__emitter__s.html +0 -1300
  191. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__event__s.html +0 -496
  192. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__mark__s.html +0 -108
  193. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__node__pair__s.html +0 -91
  194. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__node__s.html +0 -420
  195. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__parser__s.html +0 -1229
  196. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__simple__key__s.html +0 -97
  197. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__tag__directive__s.html +0 -91
  198. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__token__s.html +0 -413
  199. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__version__directive__s.html +0 -91
  200. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_a.png +0 -0
  201. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_b.png +0 -0
  202. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_h.png +0 -0
  203. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_s.png +0 -0
  204. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tabs.css +0 -59
  205. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/yaml_8h.html +0 -525
  206. data/ext/nutcracker/contrib/yaml-0.1.4/include/Makefile.am +0 -17
  207. data/ext/nutcracker/contrib/yaml-0.1.4/include/Makefile.in +0 -470
  208. data/ext/nutcracker/contrib/yaml-0.1.4/libtool +0 -8890
  209. data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile +0 -484
  210. data/ext/nutcracker/contrib/yaml-0.1.4/src/api.lo +0 -12
  211. data/ext/nutcracker/contrib/yaml-0.1.4/src/api.o +0 -0
  212. data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.lo +0 -12
  213. data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.o +0 -0
  214. data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.lo +0 -12
  215. data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.o +0 -0
  216. data/ext/nutcracker/contrib/yaml-0.1.4/src/libyaml.la +0 -41
  217. data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.lo +0 -12
  218. data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.o +0 -0
  219. data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.lo +0 -12
  220. data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.o +0 -0
  221. data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.lo +0 -12
  222. data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.o +0 -0
  223. data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.lo +0 -12
  224. data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.o +0 -0
  225. data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.lo +0 -12
  226. data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.o +0 -0
  227. data/ext/nutcracker/contrib/yaml-0.1.4/stamp-h1 +0 -1
  228. data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile +0 -675
  229. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor +0 -0
  230. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt +0 -0
  231. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt.o +0 -0
  232. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor.o +0 -0
  233. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter +0 -0
  234. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt +0 -0
  235. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt.o +0 -0
  236. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter.o +0 -0
  237. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper +0 -0
  238. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper.o +0 -0
  239. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter +0 -0
  240. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter.o +0 -0
  241. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader +0 -0
  242. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader.o +0 -0
  243. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser +0 -0
  244. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser.o +0 -0
  245. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner +0 -0
  246. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner.o +0 -0
  247. data/ext/nutcracker/contrib/yaml-0.1.4/yaml-0.1.pc +0 -10
  248. data/ext/nutcracker/contrib/yaml-0.1.4/yaml-0.1.pc.in +0 -10
  249. data/ext/nutcracker/exconf.rb +0 -0
  250. data/ext/nutcracker/libtool +0 -9403
  251. data/ext/nutcracker/src/Makefile +0 -647
  252. data/ext/nutcracker/src/hashkit/Makefile +0 -476
  253. data/ext/nutcracker/src/hashkit/libhashkit.a +0 -0
  254. data/ext/nutcracker/src/hashkit/nc_crc16.o +0 -0
  255. data/ext/nutcracker/src/hashkit/nc_crc32.o +0 -0
  256. data/ext/nutcracker/src/hashkit/nc_fnv.o +0 -0
  257. data/ext/nutcracker/src/hashkit/nc_hsieh.o +0 -0
  258. data/ext/nutcracker/src/hashkit/nc_jenkins.o +0 -0
  259. data/ext/nutcracker/src/hashkit/nc_ketama.o +0 -0
  260. data/ext/nutcracker/src/hashkit/nc_md5.o +0 -0
  261. data/ext/nutcracker/src/hashkit/nc_modula.o +0 -0
  262. data/ext/nutcracker/src/hashkit/nc_murmur.o +0 -0
  263. data/ext/nutcracker/src/hashkit/nc_one_at_a_time.o +0 -0
  264. data/ext/nutcracker/src/hashkit/nc_random.o +0 -0
  265. data/ext/nutcracker/src/nc.o +0 -0
  266. data/ext/nutcracker/src/nc_array.o +0 -0
  267. data/ext/nutcracker/src/nc_client.o +0 -0
  268. data/ext/nutcracker/src/nc_conf.o +0 -0
  269. data/ext/nutcracker/src/nc_connection.o +0 -0
  270. data/ext/nutcracker/src/nc_core.o +0 -0
  271. data/ext/nutcracker/src/nc_epoll.o +0 -0
  272. data/ext/nutcracker/src/nc_kqueue.c +0 -296
  273. data/ext/nutcracker/src/nc_kqueue.o +0 -0
  274. data/ext/nutcracker/src/nc_log.o +0 -0
  275. data/ext/nutcracker/src/nc_mbuf.o +0 -0
  276. data/ext/nutcracker/src/nc_message.o +0 -0
  277. data/ext/nutcracker/src/nc_proxy.o +0 -0
  278. data/ext/nutcracker/src/nc_rbtree.o +0 -0
  279. data/ext/nutcracker/src/nc_request.o +0 -0
  280. data/ext/nutcracker/src/nc_response.o +0 -0
  281. data/ext/nutcracker/src/nc_server.o +0 -0
  282. data/ext/nutcracker/src/nc_signal.o +0 -0
  283. data/ext/nutcracker/src/nc_stats.o +0 -0
  284. data/ext/nutcracker/src/nc_string.o +0 -0
  285. data/ext/nutcracker/src/nc_util.o +0 -0
  286. data/ext/nutcracker/src/nutcracker +0 -0
  287. data/ext/nutcracker/src/proto/Makefile +0 -454
  288. data/ext/nutcracker/src/proto/libproto.a +0 -0
  289. data/ext/nutcracker/src/proto/nc_memcache.o +0 -0
  290. data/ext/nutcracker/src/proto/nc_redis.o +0 -0
  291. data/ext/nutcracker/stamp-h1 +0 -1
@@ -40,20 +40,10 @@
40
40
  # define NC_STATS 0
41
41
  #endif
42
42
 
43
- #ifdef HAVE_EPOLL
44
- #define NC_HAVE_EPOLL 1
45
- #elif HAVE_KQUEUE
46
- #define NC_HAVE_KQUEUE 1
47
- #endif
48
-
49
43
  #ifdef HAVE_LITTLE_ENDIAN
50
44
  # define NC_LITTLE_ENDIAN 1
51
45
  #endif
52
46
 
53
- #ifdef HAVE_BACKTRACE
54
- #define NC_HAVE_BACKTRACE 1
55
- #endif
56
-
57
47
  #define NC_OK 0
58
48
  #define NC_ERROR -1
59
49
  #define NC_EAGAIN -2
@@ -111,12 +101,14 @@ struct context {
111
101
  struct stats *stats; /* stats */
112
102
 
113
103
  struct array pool; /* server_pool[] */
114
- struct evbase *evb;
104
+
105
+ int ep; /* epoll device */
106
+ int nevent; /* # epoll event */
115
107
  int max_timeout; /* epoll wait max timeout in msec */
116
- int timeout;
108
+ int timeout; /* epoll wait timeout in msec */
109
+ struct epoll_event *event; /* epoll event */
117
110
  };
118
111
 
119
-
120
112
  struct instance {
121
113
  struct context *ctx; /* active context */
122
114
  int log_level; /* log level */
@@ -16,86 +16,66 @@
16
16
  */
17
17
 
18
18
  #include <unistd.h>
19
+ #include <sys/epoll.h>
20
+
19
21
  #include <nc_core.h>
20
22
  #include <nc_event.h>
21
23
 
22
- #ifdef NC_HAVE_EPOLL
23
- #include <sys/epoll.h>
24
-
25
- struct evbase *
26
- evbase_create(int nevent, void (*callback_fp)(void *, uint32_t))
24
+ int
25
+ event_init(struct context *ctx, int size)
27
26
  {
28
-
29
- struct evbase *evb;
30
27
  int status, ep;
31
28
  struct epoll_event *event;
32
29
 
33
- if (nevent <= 0) {
34
- log_error("nevent has to be positive %d", nevent);
35
- return NULL;
36
- }
30
+ ASSERT(ctx->ep < 0);
31
+ ASSERT(ctx->nevent != 0);
32
+ ASSERT(ctx->event == NULL);
37
33
 
38
- ep = epoll_create(nevent);
34
+ ep = epoll_create(size);
39
35
  if (ep < 0) {
40
- log_error("epoll create of size %d failed: %s", nevent, strerror(errno));
41
- return NULL;
36
+ log_error("epoll create of size %d failed: %s", size, strerror(errno));
37
+ return -1;
42
38
  }
43
39
 
44
- event = nc_calloc(nevent, sizeof(*event));
40
+ event = nc_calloc(ctx->nevent, sizeof(*ctx->event));
45
41
  if (event == NULL) {
46
42
  status = close(ep);
47
43
  if (status < 0) {
48
44
  log_error("close e %d failed, ignored: %s", ep, strerror(errno));
49
45
  }
50
- return NULL;
51
- }
52
-
53
- evb = nc_alloc(sizeof(*evb));
54
- if (evb == NULL) {
55
- nc_free(event);
56
- status = close(ep);
57
- if (status < 0) {
58
- log_error("close e %d failed, ignored: %s", ep, strerror(errno));
59
- }
60
- return NULL;
61
-
46
+ return -1;
62
47
  }
63
48
 
64
- evb->nevent = nevent;
65
- evb->ep = ep;
66
- evb->event = event;
67
- evb->callback_fp = callback_fp;
49
+ ctx->ep = ep;
50
+ ctx->event = event;
68
51
 
69
- log_debug(LOG_INFO, "e %d with nevent %d", evb->ep,
70
- evb->nevent);
52
+ log_debug(LOG_INFO, "e %d with nevent %d timeout %d", ctx->ep,
53
+ ctx->nevent, ctx->timeout);
71
54
 
72
- return evb;
55
+ return 0;
73
56
  }
74
57
 
75
58
  void
76
- evbase_destroy(struct evbase *evb)
59
+ event_deinit(struct context *ctx)
77
60
  {
78
61
  int status;
79
62
 
80
- if (evb == NULL) return;
63
+ ASSERT(ctx->ep >= 0);
81
64
 
82
- ASSERT(evb->ep >= 0);
65
+ nc_free(ctx->event);
83
66
 
84
- nc_free(evb->event);
85
-
86
- status = close(evb->ep);
67
+ status = close(ctx->ep);
87
68
  if (status < 0) {
88
- log_error("close e %d failed, ignored: %s", evb->ep, strerror(errno));
69
+ log_error("close e %d failed, ignored: %s", ctx->ep, strerror(errno));
89
70
  }
90
- nc_free(evb);
71
+ ctx->ep = -1;
91
72
  }
92
73
 
93
74
  int
94
- event_add_out(struct evbase *evb, struct conn *c)
75
+ event_add_out(int ep, struct conn *c)
95
76
  {
96
77
  int status;
97
78
  struct epoll_event event;
98
- int ep = evb->ep;
99
79
 
100
80
  ASSERT(ep > 0);
101
81
  ASSERT(c != NULL);
@@ -121,11 +101,10 @@ event_add_out(struct evbase *evb, struct conn *c)
121
101
  }
122
102
 
123
103
  int
124
- event_del_out(struct evbase *evb, struct conn *c)
104
+ event_del_out(int ep, struct conn *c)
125
105
  {
126
106
  int status;
127
107
  struct epoll_event event;
128
- int ep = evb->ep;
129
108
 
130
109
  ASSERT(ep > 0);
131
110
  ASSERT(c != NULL);
@@ -151,11 +130,10 @@ event_del_out(struct evbase *evb, struct conn *c)
151
130
  }
152
131
 
153
132
  int
154
- event_add_conn(struct evbase *evb, struct conn *c)
133
+ event_add_conn(int ep, struct conn *c)
155
134
  {
156
135
  int status;
157
136
  struct epoll_event event;
158
- int ep = evb->ep;
159
137
 
160
138
  ASSERT(ep > 0);
161
139
  ASSERT(c != NULL);
@@ -177,10 +155,9 @@ event_add_conn(struct evbase *evb, struct conn *c)
177
155
  }
178
156
 
179
157
  int
180
- event_del_conn(struct evbase *evb, struct conn *c)
158
+ event_del_conn(int ep, struct conn *c)
181
159
  {
182
160
  int status;
183
- int ep = evb->ep;
184
161
 
185
162
  ASSERT(ep > 0);
186
163
  ASSERT(c != NULL);
@@ -199,14 +176,9 @@ event_del_conn(struct evbase *evb, struct conn *c)
199
176
  }
200
177
 
201
178
  int
202
- event_wait(struct evbase *evb, int timeout)
179
+ event_wait(int ep, struct epoll_event *event, int nevent, int timeout)
203
180
  {
204
- int nsd, i;
205
- uint32_t evflags = 0;
206
- int ep = evb->ep;
207
- struct epoll_event *event = evb->event;
208
- int nevent = evb->nevent;
209
- void (*callback_fp)(void *, uint32_t) = evb->callback_fp;
181
+ int nsd;
210
182
 
211
183
  ASSERT(ep > 0);
212
184
  ASSERT(event != NULL);
@@ -215,22 +187,6 @@ event_wait(struct evbase *evb, int timeout)
215
187
  for (;;) {
216
188
  nsd = epoll_wait(ep, event, nevent, timeout);
217
189
  if (nsd > 0) {
218
- for (i = 0; i < nsd; i++) {
219
- struct epoll_event *ev = &evb->event[i];
220
-
221
- evflags = 0;
222
- if (ev->events & EPOLLERR)
223
- evflags |= EV_ERR;
224
-
225
- if (ev->events & EPOLLIN)
226
- evflags |= EV_READ;
227
-
228
- if (ev->events & EPOLLOUT)
229
- evflags |= EV_WRITE;
230
-
231
- if (callback_fp != NULL)
232
- (*callback_fp)((void *) ev->data.ptr, evflags);
233
- }
234
190
  return nsd;
235
191
  }
236
192
 
@@ -253,26 +209,6 @@ event_wait(struct evbase *evb, int timeout)
253
209
 
254
210
  return -1;
255
211
  }
256
- NOT_REACHED();
257
- }
258
212
 
259
- int
260
- event_add_st(struct evbase *evb, int fd)
261
- {
262
- int status;
263
- struct epoll_event ev;
264
-
265
- ev.data.fd = fd;
266
- ev.events = EPOLLIN;
267
-
268
- status = epoll_ctl(evb->ep, EPOLL_CTL_ADD, fd, &ev);
269
- if (status < 0) {
270
- log_error("epoll ctl on e %d sd %d failed: %s", evb->ep, fd,
271
- strerror(errno));
272
- return status;
273
- }
274
-
275
- return status;
213
+ NOT_REACHED();
276
214
  }
277
-
278
- #endif /* NC_HAVE_EPOLL */
@@ -20,40 +20,20 @@
20
20
 
21
21
  #include <nc_core.h>
22
22
 
23
- #define NC_EVENT_SIZE 1024
24
- #define EV_READ 0xff
25
- #define EV_WRITE 0xff00
26
- #define EV_ERR 0xff0000
23
+ /*
24
+ * A hint to the kernel that is used to size the event backing store
25
+ * of a given epoll instance
26
+ */
27
+ #define EVENT_SIZE_HINT 1024
27
28
 
28
- #ifdef NC_HAVE_KQUEUE
29
- struct evbase {
30
- int kq;
31
- struct kevent *changes; /* list of changes to be made */
32
- struct kevent *kevents; /* list of events returned from kevent */
33
- int n_changes; /* number of changes in our list */
34
- int n_returned; /* number of events returned from kevent */
35
- int n_processed;
36
- int nevent;
37
- void (*callback_fp)(void *, uint32_t);
38
- };
39
- #endif
40
- #ifdef NC_HAVE_EPOLL
41
- struct evbase {
42
- int ep;
43
- int nevent;
44
- struct epoll_event *event;
45
- void (*callback_fp)(void *, uint32_t);
46
- };
47
- #endif
29
+ int event_init(struct context *ctx, int size);
30
+ void event_deinit(struct context *ctx);
48
31
 
49
- struct evbase *evbase_create(int size, void (*callback_fp)(void *, uint32_t));
50
- void evbase_destroy(struct evbase *evb);
32
+ int event_add_out(int ep, struct conn *c);
33
+ int event_del_out(int ep, struct conn *c);
34
+ int event_add_conn(int ep, struct conn *c);
35
+ int event_del_conn(int ep, struct conn *c);
51
36
 
52
- int event_add_out(struct evbase *evb, struct conn *c);
53
- int event_del_out(struct evbase *evb, struct conn *c);
54
- int event_add_conn(struct evbase *evb, struct conn *c);
55
- int event_del_conn(struct evbase *evb, struct conn *c);
56
- int event_wait(struct evbase *evb, int timeout);
57
- int event_add_st(struct evbase *evb, int fd);
37
+ int event_wait(int ep, struct epoll_event *event, int nevent, int timeout);
58
38
 
59
- #endif /* _NC_EVENT_H */
39
+ #endif
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -163,18 +163,18 @@ proxy_listen(struct context *ctx, struct conn *p)
163
163
  return NC_ERROR;
164
164
  }
165
165
 
166
- status = event_add_conn(ctx->evb, p);
166
+ status = event_add_conn(ctx->ep, p);
167
167
  if (status < 0) {
168
- log_error("event add conn p %d on addr '%.*s' failed: %s",
169
- p->sd, pool->addrstr.len, pool->addrstr.data,
168
+ log_error("event add conn e %d p %d on addr '%.*s' failed: %s",
169
+ ctx->ep, p->sd, pool->addrstr.len, pool->addrstr.data,
170
170
  strerror(errno));
171
171
  return NC_ERROR;
172
172
  }
173
173
 
174
- status = event_del_out(ctx->evb, p);
174
+ status = event_del_out(ctx->ep, p);
175
175
  if (status < 0) {
176
- log_error("event del out p %d on addr '%.*s' failed: %s",
177
- p->sd, pool->addrstr.len, pool->addrstr.data,
176
+ log_error("event del out e %d p %d on addr '%.*s' failed: %s",
177
+ ctx->ep, p->sd, pool->addrstr.len, pool->addrstr.data,
178
178
  strerror(errno));
179
179
  return NC_ERROR;
180
180
  }
@@ -325,9 +325,9 @@ proxy_accept(struct context *ctx, struct conn *p)
325
325
  }
326
326
  }
327
327
 
328
- status = event_add_conn(ctx->evb, c);
328
+ status = event_add_conn(ctx->ep, c);
329
329
  if (status < 0) {
330
- log_error("event add conn from p %d failed: %s", p->sd,
330
+ log_error("event add conn of c %d from p %d failed: %s", c->sd, p->sd,
331
331
  strerror(errno));
332
332
  c->close(ctx, c);
333
333
  return status;
File without changes
File without changes
File without changes
File without changes
@@ -413,7 +413,7 @@ req_forward_error(struct context *ctx, struct conn *conn, struct msg *msg)
413
413
  }
414
414
 
415
415
  if (req_done(conn, TAILQ_FIRST(&conn->omsg_q))) {
416
- status = event_add_out(ctx->evb, conn);
416
+ status = event_add_out(ctx->ep, conn);
417
417
  if (status != NC_OK) {
418
418
  conn->err = errno;
419
419
  }
@@ -482,7 +482,7 @@ req_forward(struct context *ctx, struct conn *c_conn, struct msg *msg)
482
482
 
483
483
  /* enqueue the message (request) into server inq */
484
484
  if (TAILQ_EMPTY(&s_conn->imsg_q)) {
485
- status = event_add_out(ctx->evb, s_conn);
485
+ status = event_add_out(ctx->ep, s_conn);
486
486
  if (status != NC_OK) {
487
487
  req_forward_error(ctx, c_conn, msg);
488
488
  s_conn->err = errno;
@@ -533,7 +533,7 @@ req_send_next(struct context *ctx, struct conn *conn)
533
533
  nmsg = TAILQ_FIRST(&conn->imsg_q);
534
534
  if (nmsg == NULL) {
535
535
  /* nothing to send as the server inq is empty */
536
- status = event_del_out(ctx->evb, conn);
536
+ status = event_del_out(ctx->ep, conn);
537
537
  if (status != NC_OK) {
538
538
  conn->err = errno;
539
539
  }
@@ -157,9 +157,11 @@ rsp_filter(struct context *ctx, struct conn *conn, struct msg *msg)
157
157
 
158
158
  pmsg = TAILQ_FIRST(&conn->omsg_q);
159
159
  if (pmsg == NULL) {
160
- log_debug(LOG_ERR, "filter stray rsp %"PRIu64" len %"PRIu32" on s %d",
161
- msg->id, msg->mlen, conn->sd);
160
+ log_error("filter stray rsp %"PRIu64" len %"PRIu32" on s %d", msg->id,
161
+ msg->mlen, conn->sd);
162
162
  rsp_put(msg);
163
+ errno = EINVAL;
164
+ conn->err = errno;
163
165
  return true;
164
166
  }
165
167
  ASSERT(pmsg->peer == NULL);
@@ -220,7 +222,7 @@ rsp_forward(struct context *ctx, struct conn *s_conn, struct msg *msg)
220
222
  ASSERT(c_conn->client && !c_conn->proxy);
221
223
 
222
224
  if (req_done(c_conn, TAILQ_FIRST(&c_conn->omsg_q))) {
223
- status = event_add_out(ctx->evb, c_conn);
225
+ status = event_add_out(ctx->ep, c_conn);
224
226
  if (status != NC_OK) {
225
227
  c_conn->err = errno;
226
228
  }
@@ -265,7 +267,7 @@ rsp_send_next(struct context *ctx, struct conn *conn)
265
267
  log_debug(LOG_INFO, "c %d is done", conn->sd);
266
268
  }
267
269
 
268
- status = event_del_out(ctx->evb, conn);
270
+ status = event_del_out(ctx->ep, conn);
269
271
  if (status != NC_OK) {
270
272
  conn->err = errno;
271
273
  }
@@ -367,7 +367,7 @@ server_close(struct context *ctx, struct conn *conn)
367
367
  msg->err = conn->err;
368
368
 
369
369
  if (req_done(c_conn, TAILQ_FIRST(&c_conn->omsg_q))) {
370
- event_add_out(ctx->evb, msg->owner);
370
+ event_add_out(ctx->ep, msg->owner);
371
371
  }
372
372
 
373
373
  log_debug(LOG_INFO, "close s %d schedule error for req %"PRIu64" "
@@ -397,7 +397,7 @@ server_close(struct context *ctx, struct conn *conn)
397
397
  msg->err = conn->err;
398
398
 
399
399
  if (req_done(c_conn, TAILQ_FIRST(&c_conn->omsg_q))) {
400
- event_add_out(ctx->evb, msg->owner);
400
+ event_add_out(ctx->ep, msg->owner);
401
401
  }
402
402
 
403
403
  log_debug(LOG_INFO, "close s %d schedule error for req %"PRIu64" "
@@ -476,10 +476,10 @@ server_connect(struct context *ctx, struct server *server, struct conn *conn)
476
476
  }
477
477
  }
478
478
 
479
- status = event_add_conn(ctx->evb, conn);
479
+ status = event_add_conn(ctx->ep, conn);
480
480
  if (status != NC_OK) {
481
- log_error("event add conn s %d for server '%.*s' failed: %s",
482
- conn->sd, server->pname.len, server->pname.data,
481
+ log_error("event add conn e %d s %d for server '%.*s' failed: %s",
482
+ ctx->ep, conn->sd, server->pname.len, server->pname.data,
483
483
  strerror(errno));
484
484
  goto error;
485
485
  }