nutcracker 0.2.4.10mac → 0.2.4.10

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 (290) 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/config.guess +278 -248
  12. data/ext/nutcracker/config/config.sub +234 -77
  13. data/ext/nutcracker/config/depcomp +143 -39
  14. data/ext/nutcracker/config/install-sh +136 -116
  15. data/ext/nutcracker/config/ltmain.sh +1704 -788
  16. data/ext/nutcracker/config/missing +29 -65
  17. data/ext/nutcracker/config.h.in +0 -15
  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 -0
  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 +8 -201
  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/libtool +0 -9403
  250. data/ext/nutcracker/src/Makefile +0 -647
  251. data/ext/nutcracker/src/hashkit/Makefile +0 -476
  252. data/ext/nutcracker/src/hashkit/libhashkit.a +0 -0
  253. data/ext/nutcracker/src/hashkit/nc_crc16.o +0 -0
  254. data/ext/nutcracker/src/hashkit/nc_crc32.o +0 -0
  255. data/ext/nutcracker/src/hashkit/nc_fnv.o +0 -0
  256. data/ext/nutcracker/src/hashkit/nc_hsieh.o +0 -0
  257. data/ext/nutcracker/src/hashkit/nc_jenkins.o +0 -0
  258. data/ext/nutcracker/src/hashkit/nc_ketama.o +0 -0
  259. data/ext/nutcracker/src/hashkit/nc_md5.o +0 -0
  260. data/ext/nutcracker/src/hashkit/nc_modula.o +0 -0
  261. data/ext/nutcracker/src/hashkit/nc_murmur.o +0 -0
  262. data/ext/nutcracker/src/hashkit/nc_one_at_a_time.o +0 -0
  263. data/ext/nutcracker/src/hashkit/nc_random.o +0 -0
  264. data/ext/nutcracker/src/nc.o +0 -0
  265. data/ext/nutcracker/src/nc_array.o +0 -0
  266. data/ext/nutcracker/src/nc_client.o +0 -0
  267. data/ext/nutcracker/src/nc_conf.o +0 -0
  268. data/ext/nutcracker/src/nc_connection.o +0 -0
  269. data/ext/nutcracker/src/nc_core.o +0 -0
  270. data/ext/nutcracker/src/nc_epoll.o +0 -0
  271. data/ext/nutcracker/src/nc_kqueue.c +0 -296
  272. data/ext/nutcracker/src/nc_kqueue.o +0 -0
  273. data/ext/nutcracker/src/nc_log.o +0 -0
  274. data/ext/nutcracker/src/nc_mbuf.o +0 -0
  275. data/ext/nutcracker/src/nc_message.o +0 -0
  276. data/ext/nutcracker/src/nc_proxy.o +0 -0
  277. data/ext/nutcracker/src/nc_rbtree.o +0 -0
  278. data/ext/nutcracker/src/nc_request.o +0 -0
  279. data/ext/nutcracker/src/nc_response.o +0 -0
  280. data/ext/nutcracker/src/nc_server.o +0 -0
  281. data/ext/nutcracker/src/nc_signal.o +0 -0
  282. data/ext/nutcracker/src/nc_stats.o +0 -0
  283. data/ext/nutcracker/src/nc_string.o +0 -0
  284. data/ext/nutcracker/src/nc_util.o +0 -0
  285. data/ext/nutcracker/src/nutcracker +0 -0
  286. data/ext/nutcracker/src/proto/Makefile +0 -454
  287. data/ext/nutcracker/src/proto/libproto.a +0 -0
  288. data/ext/nutcracker/src/proto/nc_memcache.o +0 -0
  289. data/ext/nutcracker/src/proto/nc_redis.o +0 -0
  290. data/ext/nutcracker/stamp-h1 +0 -1
@@ -1,296 +0,0 @@
1
- /*
2
- * twemproxy - A fast and lightweight proxy for memcached protocol.
3
- * Copyright (C) 2011 Twitter, Inc.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- */
17
-
18
-
19
- #include <unistd.h>
20
- #include <nc_core.h>
21
- #include <nc_event.h>
22
-
23
- #ifdef NC_HAVE_KQUEUE
24
- #include <sys/event.h>
25
-
26
- struct evbase *
27
- evbase_create(int nevent, void (*callback_fp)(void *, uint32_t))
28
- {
29
-
30
- struct evbase *evb;
31
- int status, kq;
32
- struct kevent *changes, *kevents;
33
-
34
- if (nevent <= 0) {
35
- log_error("nevent has to be positive %d", nevent);
36
- return NULL;
37
- }
38
-
39
- /* Initialize the kernel queue */
40
- if ((kq = kqueue()) == -1) {
41
- log_error("kernel queue create failed: %s", kq, strerror(errno));
42
- return NULL;
43
- }
44
-
45
- changes = nc_calloc(nevent, sizeof(*changes));
46
- if (changes == NULL) {
47
- status = close(kq);
48
- if (status < 0) {
49
- log_error("close kq %d failed, ignored: %s", kq, strerror(errno));
50
- }
51
- return NULL;
52
- }
53
-
54
- kevents = nc_calloc(nevent, sizeof(*kevents));
55
- if (kevents == NULL) {
56
- nc_free(changes);
57
- status = close(kq);
58
- if (status < 0) {
59
- log_error("close kq %d failed, ignored: %s", kq, strerror(errno));
60
- }
61
- return NULL;
62
- }
63
-
64
- evb = (struct evbase *) nc_alloc(sizeof(*evb));
65
- if (evb == NULL) {
66
- nc_free(changes);
67
- nc_free(kevents);
68
- status = close(kq);
69
- if (status < 0) {
70
- log_error("close kq %d failed, ignored: %s", kq, strerror(errno));
71
- }
72
- return NULL;
73
- }
74
-
75
- evb->kq = kq;
76
- evb->changes = changes;
77
- evb->kevents = kevents;
78
- evb->nevent = nevent;
79
- evb->callback_fp = callback_fp;
80
- evb->n_changes = 0;
81
-
82
- log_debug(LOG_INFO, "kq %d with nevent %d", evb->kq,
83
- evb->nevent);
84
-
85
- return evb;
86
- }
87
-
88
- void
89
- evbase_destroy(struct evbase *evb)
90
- {
91
- int status;
92
-
93
- if (evb == NULL) return;
94
-
95
- ASSERT(evb->kq >= 0);
96
-
97
- nc_free(evb->changes);
98
- nc_free(evb->kevents);
99
-
100
- status = close(evb->kq);
101
- if (status < 0) {
102
- log_error("close kq %d failed, ignored: %s", evb->kq, strerror(errno));
103
- }
104
- nc_free(evb);
105
- }
106
-
107
- int
108
- event_add_out(struct evbase *evb, struct conn *c)
109
- {
110
- struct kevent *event;
111
- int kq = evb->kq;
112
-
113
- ASSERT(kq > 0);
114
- ASSERT(c != NULL);
115
- ASSERT(c->sd > 0);
116
- ASSERT(c->recv_active);
117
- ASSERT(evb->n_changes < evb->nevent);
118
-
119
- if (c->send_active) {
120
- return 0;
121
- }
122
-
123
- event = &evb->changes[(evb->n_changes)++];
124
- EV_SET(event, c->sd, EVFILT_WRITE, EV_ADD | EV_CLEAR, 0, 0, (void *)c);
125
-
126
- c->send_active = 1;
127
-
128
- return 0;
129
- }
130
-
131
- int
132
- event_del_out(struct evbase *evb, struct conn *c)
133
- {
134
- struct kevent *event;
135
- int kq = evb->kq;
136
-
137
- ASSERT(kq > 0);
138
- ASSERT(c != NULL);
139
- ASSERT(c->sd > 0);
140
- ASSERT(c->recv_active);
141
- ASSERT(evb->n_changes < evb->nevent);
142
-
143
- if (!c->send_active) {
144
- return 0;
145
- }
146
-
147
- event = &evb->changes[(evb->n_changes)++];
148
- EV_SET(event, c->sd, EVFILT_WRITE, EV_DELETE, 0, 0, (void *)c);
149
-
150
- c->send_active = 0;
151
-
152
- return 0;
153
- }
154
-
155
- int
156
- event_add_conn(struct evbase *evb, struct conn *c)
157
- {
158
- struct kevent *event;
159
- int kq = evb->kq;
160
-
161
- ASSERT(kq > 0);
162
- ASSERT(c != NULL);
163
- ASSERT(c->sd > 0);
164
- ASSERT(evb->n_changes < evb->nevent);
165
-
166
- event = &evb->changes[(evb->n_changes)++];
167
- EV_SET(event, c->sd, EVFILT_READ, EV_ADD | EV_CLEAR, 0, 0, (void *)c);
168
-
169
- c->recv_active = 1;
170
-
171
- event_add_out(evb, c);
172
- c->send_active = 1;
173
-
174
- return 0;
175
- }
176
-
177
- int
178
- event_del_conn(struct evbase *evb, struct conn *c)
179
- {
180
- int i;
181
- struct kevent *event;
182
- int kq = evb->kq;
183
-
184
- ASSERT(kq > 0);
185
- ASSERT(c != NULL);
186
- ASSERT(c->sd > 0);
187
- ASSERT(evb->n_changes < evb->nevent);
188
-
189
- event = &evb->changes[(evb->n_changes)++];
190
- EV_SET(event, c->sd, EVFILT_READ, EV_DELETE, 0, 0, (void *)c);
191
-
192
- event_del_out(evb, c);
193
-
194
- c->recv_active = 0;
195
- c->send_active = 0;
196
-
197
- /*
198
- * Now, eliminate pending events for c->sd (there should be at most one
199
- * other event). This is important because we will close c->sd and free
200
- * c when we return.
201
- */
202
- for (i = evb->n_processed + 1; i < evb->n_returned; i++) {
203
- struct kevent *ev = &evb->kevents[i];
204
- if (ev->ident == (uintptr_t)c->sd) {
205
- ev->flags = 0;
206
- ev->filter = 0;
207
- break;
208
- }
209
- }
210
-
211
- return 0;
212
- }
213
-
214
- int
215
- event_wait(struct evbase *evb, int timeout)
216
- {
217
- int kq = evb->kq;
218
- struct timespec ts = nc_millisec_to_timespec(timeout);
219
- void (*callback_fp)(void *, uint32_t) = evb->callback_fp;
220
-
221
- ASSERT(kq > 0);
222
-
223
- for (;;) {
224
- evb->n_returned = kevent(kq, evb->changes, evb->n_changes, evb->kevents,
225
- evb->nevent, &ts);
226
- evb->n_changes = 0;
227
- if (evb->n_returned > 0) {
228
- for (evb->n_processed = 0; evb->n_processed < evb->n_returned;
229
- evb->n_processed++) {
230
- struct kevent *ev = &evb->kevents[evb->n_processed];
231
-
232
- uint32_t evflags = 0;
233
- if (ev->flags & EV_ERROR) {
234
- /*
235
- * Error messages that can happen, when a delete fails.
236
- * EBADF happens when the file descriptor has been
237
- * closed,
238
- * ENOENT when the file descriptor was closed and
239
- * then reopened.
240
- * EINVAL for some reasons not understood; EINVAL
241
- * should not be returned ever; but FreeBSD does :-\
242
- * An error is also indicated when a callback deletes
243
- * an event we are still processing. In that case
244
- * the data field is set to ENOENT.
245
- */
246
- if (ev->data == EBADF ||
247
- ev->data == EINVAL ||
248
- ev->data == ENOENT)
249
- continue;
250
- evflags |= EV_ERR;
251
- }
252
-
253
- if (ev->filter == EVFILT_READ)
254
- evflags |= EV_READ;
255
-
256
- if (ev->filter == EVFILT_WRITE)
257
- evflags |= EV_WRITE;
258
-
259
- if (callback_fp != NULL && evflags != 0)
260
- (*callback_fp)((void *)(ev->udata), evflags);
261
- }
262
- return evb->n_returned;
263
- }
264
-
265
- if (evb->n_returned == 0) {
266
- if (timeout == -1) {
267
- log_error("kqueue on kq %d with %d events and %d timeout "
268
- "returned no events", kq, evb->nevent, timeout);
269
- return -1;
270
- }
271
-
272
- return 0;
273
- }
274
-
275
- if (errno == EINTR) {
276
- continue;
277
- }
278
-
279
- log_error("kevent on kq %d with %d events failed: %s", kq, evb->nevent,
280
- strerror(errno));
281
-
282
- return -1;
283
- }
284
- NOT_REACHED();
285
- }
286
-
287
- int
288
- event_add_st(struct evbase *evb, int fd)
289
- {
290
- struct kevent *ev = &evb->changes[(evb->n_changes)++];
291
- EV_SET(ev, fd, EVFILT_READ, EV_ADD | EV_CLEAR, 0, 0, NULL);
292
-
293
- return 0;
294
- }
295
-
296
- #endif /* NC_HAVE_KQUEUE */
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file