nutcracker 0.2.4.10mac → 0.2.4.10

Sign up to get free protection for your applications and to get access to all the features.
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