grpc 1.7.3 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (616) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2106 -2116
  3. data/include/grpc/census.h +1 -432
  4. data/include/grpc/compression.h +9 -9
  5. data/include/grpc/grpc.h +115 -98
  6. data/include/grpc/grpc_cronet.h +3 -3
  7. data/include/grpc/grpc_posix.h +4 -4
  8. data/include/grpc/grpc_security.h +160 -88
  9. data/include/grpc/grpc_security_constants.h +7 -0
  10. data/include/grpc/impl/codegen/atm.h +9 -1
  11. data/include/grpc/impl/codegen/atm_gcc_atomic.h +13 -4
  12. data/include/grpc/impl/codegen/atm_gcc_sync.h +6 -5
  13. data/include/grpc/impl/codegen/atm_windows.h +23 -22
  14. data/include/grpc/impl/codegen/byte_buffer.h +14 -14
  15. data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -2
  16. data/include/grpc/impl/codegen/connectivity_state.h +0 -2
  17. data/include/grpc/impl/codegen/grpc_types.h +32 -28
  18. data/include/grpc/impl/codegen/port_platform.h +48 -0
  19. data/include/grpc/impl/codegen/slice.h +10 -10
  20. data/include/grpc/impl/codegen/sync_generic.h +9 -3
  21. data/include/grpc/slice.h +16 -17
  22. data/include/grpc/slice_buffer.h +22 -22
  23. data/include/grpc/support/alloc.h +11 -11
  24. data/include/grpc/support/avl.h +28 -20
  25. data/include/grpc/support/cmdline.h +13 -13
  26. data/include/grpc/support/histogram.h +17 -17
  27. data/include/grpc/support/host_port.h +2 -2
  28. data/include/grpc/support/log.h +9 -9
  29. data/include/grpc/support/log_windows.h +1 -1
  30. data/include/grpc/support/string_util.h +2 -2
  31. data/include/grpc/support/subprocess.h +5 -5
  32. data/include/grpc/support/sync.h +43 -27
  33. data/include/grpc/support/thd.h +6 -6
  34. data/include/grpc/support/tls_gcc.h +1 -1
  35. data/include/grpc/support/tls_pthread.h +1 -1
  36. data/src/core/ext/census/{grpc_context.c → grpc_context.cc} +5 -8
  37. data/src/core/ext/filters/client_channel/backup_poller.cc +165 -0
  38. data/src/core/ext/{census/grpc_filter.h → filters/client_channel/backup_poller.h} +12 -7
  39. data/src/core/ext/filters/client_channel/{channel_connectivity.c → channel_connectivity.cc} +45 -42
  40. data/src/core/ext/filters/client_channel/{client_channel.c → client_channel.cc} +452 -417
  41. data/src/core/ext/filters/client_channel/client_channel.h +16 -8
  42. data/src/core/ext/filters/client_channel/{client_channel_factory.c → client_channel_factory.cc} +0 -0
  43. data/src/core/ext/filters/client_channel/client_channel_factory.h +29 -21
  44. data/src/core/ext/filters/client_channel/{client_channel_plugin.c → client_channel_plugin.cc} +15 -19
  45. data/src/core/ext/filters/client_channel/{connector.c → connector.cc} +0 -0
  46. data/src/core/ext/filters/client_channel/connector.h +29 -21
  47. data/src/core/ext/filters/client_channel/{http_connect_handshaker.c → http_connect_handshaker.cc} +10 -10
  48. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +8 -0
  49. data/src/core/ext/filters/client_channel/{http_proxy.c → http_proxy.cc} +14 -14
  50. data/src/core/ext/filters/client_channel/http_proxy.h +8 -0
  51. data/src/core/ext/filters/client_channel/{lb_policy.c → lb_policy.cc} +47 -48
  52. data/src/core/ext/filters/client_channel/lb_policy.h +76 -70
  53. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{client_load_reporting_filter.c → client_load_reporting_filter.cc} +28 -29
  54. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +9 -1
  55. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb.c → grpclb.cc} +554 -563
  56. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +9 -1
  57. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +17 -9
  58. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_channel_secure.c → grpclb_channel_secure.cc} +17 -17
  59. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_client_stats.c → grpclb_client_stats.cc} +3 -3
  60. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +9 -1
  61. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{load_balancer_api.c → load_balancer_api.cc} +64 -67
  62. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +20 -21
  63. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +599 -0
  64. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +695 -0
  65. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +270 -0
  66. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +153 -0
  67. data/src/core/ext/filters/client_channel/{lb_policy_factory.c → lb_policy_factory.cc} +10 -10
  68. data/src/core/ext/filters/client_channel/lb_policy_factory.h +48 -40
  69. data/src/core/ext/filters/client_channel/{lb_policy_registry.c → lb_policy_registry.cc} +9 -9
  70. data/src/core/ext/filters/client_channel/lb_policy_registry.h +11 -3
  71. data/src/core/ext/filters/client_channel/{parse_address.c → parse_address.cc} +24 -24
  72. data/src/core/ext/filters/client_channel/parse_address.h +14 -6
  73. data/src/core/ext/filters/client_channel/{proxy_mapper.c → proxy_mapper.cc} +0 -0
  74. data/src/core/ext/filters/client_channel/proxy_mapper.h +8 -0
  75. data/src/core/ext/filters/client_channel/{proxy_mapper_registry.c → proxy_mapper_registry.cc} +0 -0
  76. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -0
  77. data/src/core/ext/filters/client_channel/{resolver.c → resolver.cc} +21 -23
  78. data/src/core/ext/filters/client_channel/resolver.h +33 -27
  79. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{dns_resolver_ares.c → dns_resolver_ares.cc} +133 -133
  80. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +18 -9
  81. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_ev_driver_posix.c → grpc_ares_ev_driver_posix.cc} +58 -56
  82. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_wrapper.c → grpc_ares_wrapper.cc} +118 -115
  83. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +23 -15
  84. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +60 -0
  85. data/src/core/ext/filters/client_channel/resolver/dns/native/{dns_resolver.c → dns_resolver.cc} +100 -94
  86. data/src/core/ext/filters/client_channel/resolver/fake/{fake_resolver.c → fake_resolver.cc} +14 -14
  87. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +9 -1
  88. data/src/core/ext/filters/client_channel/resolver/sockaddr/{sockaddr_resolver.c → sockaddr_resolver.cc} +60 -60
  89. data/src/core/ext/filters/client_channel/{resolver_factory.c → resolver_factory.cc} +2 -2
  90. data/src/core/ext/filters/client_channel/resolver_factory.h +27 -19
  91. data/src/core/ext/filters/client_channel/{resolver_registry.c → resolver_registry.cc} +35 -35
  92. data/src/core/ext/filters/client_channel/resolver_registry.h +18 -10
  93. data/src/core/ext/filters/client_channel/{retry_throttle.c → retry_throttle.cc} +10 -10
  94. data/src/core/ext/filters/client_channel/retry_throttle.h +8 -0
  95. data/src/core/ext/filters/client_channel/{subchannel.c → subchannel.cc} +210 -213
  96. data/src/core/ext/filters/client_channel/subchannel.h +68 -60
  97. data/src/core/ext/filters/client_channel/{subchannel_index.c → subchannel_index.cc} +52 -52
  98. data/src/core/ext/filters/client_channel/subchannel_index.h +22 -14
  99. data/src/core/ext/filters/client_channel/{uri_parser.c → uri_parser.cc} +29 -27
  100. data/src/core/ext/filters/client_channel/uri_parser.h +18 -10
  101. data/src/core/ext/filters/deadline/{deadline_filter.c → deadline_filter.cc} +12 -15
  102. data/src/core/ext/filters/deadline/deadline_filter.h +11 -2
  103. data/src/core/ext/filters/http/client/{http_client_filter.c → http_client_filter.cc} +83 -83
  104. data/src/core/ext/filters/http/client/http_client_filter.h +8 -0
  105. data/src/core/ext/filters/http/{http_filters_plugin.c → http_filters_plugin.cc} +20 -21
  106. data/src/core/ext/filters/http/message_compress/{message_compress_filter.c → message_compress_filter.cc} +84 -83
  107. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +9 -1
  108. data/src/core/ext/filters/http/server/{http_server_filter.c → http_server_filter.cc} +80 -78
  109. data/src/core/ext/filters/http/server/http_server_filter.h +8 -0
  110. data/src/core/ext/filters/load_reporting/{server_load_reporting_filter.c → server_load_reporting_filter.cc} +29 -29
  111. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +9 -1
  112. data/src/core/ext/filters/load_reporting/{server_load_reporting_plugin.c → server_load_reporting_plugin.cc} +11 -11
  113. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +13 -5
  114. data/src/core/ext/filters/max_age/{max_age_filter.c → max_age_filter.cc} +46 -56
  115. data/src/core/ext/filters/max_age/max_age_filter.h +8 -0
  116. data/src/core/ext/filters/message_size/{message_size_filter.c → message_size_filter.cc} +62 -40
  117. data/src/core/ext/filters/message_size/message_size_filter.h +8 -0
  118. data/src/core/ext/filters/workarounds/{workaround_cronet_compression_filter.c → workaround_cronet_compression_filter.cc} +11 -11
  119. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +8 -0
  120. data/src/core/ext/filters/workarounds/{workaround_utils.c → workaround_utils.cc} +7 -7
  121. data/src/core/ext/filters/workarounds/workaround_utils.h +9 -1
  122. data/src/core/ext/transport/chttp2/alpn/{alpn.c → alpn.cc} +3 -3
  123. data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -2
  124. data/src/core/ext/transport/chttp2/client/{chttp2_connector.c → chttp2_connector.cc} +49 -45
  125. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +8 -0
  126. data/src/core/ext/transport/chttp2/client/insecure/{channel_create.c → channel_create.cc} +28 -27
  127. data/src/core/ext/transport/chttp2/client/insecure/{channel_create_posix.c → channel_create_posix.cc} +14 -13
  128. data/src/core/ext/transport/chttp2/client/secure/{secure_channel_create.c → secure_channel_create.cc} +68 -66
  129. data/src/core/ext/transport/chttp2/server/{chttp2_server.c → chttp2_server.cc} +76 -77
  130. data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -3
  131. data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2.c → server_chttp2.cc} +3 -3
  132. data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2_posix.c → server_chttp2_posix.cc} +13 -12
  133. data/src/core/ext/transport/chttp2/server/secure/{server_secure_chttp2.c → server_secure_chttp2.cc} +12 -10
  134. data/src/core/ext/transport/chttp2/transport/{bin_decoder.c → bin_decoder.cc} +7 -7
  135. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +15 -7
  136. data/src/core/ext/transport/chttp2/transport/{bin_encoder.c → bin_encoder.cc} +11 -11
  137. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +8 -0
  138. data/src/core/ext/transport/chttp2/transport/{chttp2_plugin.c → chttp2_plugin.cc} +2 -9
  139. data/src/core/ext/transport/chttp2/transport/{chttp2_transport.c → chttp2_transport.cc} +778 -778
  140. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -10
  141. data/src/core/ext/transport/chttp2/transport/flow_control.cc +385 -0
  142. data/src/core/ext/transport/chttp2/transport/flow_control.h +337 -0
  143. data/src/core/ext/transport/chttp2/transport/frame.h +8 -0
  144. data/src/core/ext/transport/chttp2/transport/{frame_data.c → frame_data.cc} +34 -34
  145. data/src/core/ext/transport/chttp2/transport/frame_data.h +25 -17
  146. data/src/core/ext/transport/chttp2/transport/{frame_goaway.c → frame_goaway.cc} +18 -18
  147. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +18 -10
  148. data/src/core/ext/transport/chttp2/transport/{frame_ping.c → frame_ping.cc} +18 -19
  149. data/src/core/ext/transport/chttp2/transport/frame_ping.h +12 -4
  150. data/src/core/ext/transport/chttp2/transport/{frame_rst_stream.c → frame_rst_stream.cc} +16 -16
  151. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +16 -8
  152. data/src/core/ext/transport/chttp2/transport/{frame_settings.c → frame_settings.cc} +23 -24
  153. data/src/core/ext/transport/chttp2/transport/frame_settings.h +17 -9
  154. data/src/core/ext/transport/chttp2/transport/{frame_window_update.c → frame_window_update.cc} +22 -24
  155. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +14 -6
  156. data/src/core/ext/transport/chttp2/transport/{hpack_encoder.c → hpack_encoder.cc} +206 -161
  157. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +23 -13
  158. data/src/core/ext/transport/chttp2/transport/{hpack_parser.c → hpack_parser.cc} +340 -334
  159. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +30 -22
  160. data/src/core/ext/transport/chttp2/transport/{hpack_table.c → hpack_table.cc} +25 -25
  161. data/src/core/ext/transport/chttp2/transport/hpack_table.h +19 -11
  162. data/src/core/ext/transport/chttp2/transport/{http2_settings.c → http2_settings.cc} +1 -1
  163. data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -2
  164. data/src/core/ext/transport/chttp2/transport/{huffsyms.c → huffsyms.cc} +0 -0
  165. data/src/core/ext/transport/chttp2/transport/huffsyms.h +8 -0
  166. data/src/core/ext/transport/chttp2/transport/{incoming_metadata.c → incoming_metadata.cc} +14 -13
  167. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +18 -10
  168. data/src/core/ext/transport/chttp2/transport/internal.h +214 -340
  169. data/src/core/ext/transport/chttp2/transport/{parsing.c → parsing.cc} +152 -141
  170. data/src/core/ext/transport/chttp2/transport/{stream_lists.c → stream_lists.cc} +53 -53
  171. data/src/core/ext/transport/chttp2/transport/{stream_map.c → stream_map.cc} +35 -34
  172. data/src/core/ext/transport/chttp2/transport/stream_map.h +22 -14
  173. data/src/core/ext/transport/chttp2/transport/{varint.c → varint.cc} +0 -0
  174. data/src/core/ext/transport/chttp2/transport/varint.h +8 -0
  175. data/src/core/ext/transport/chttp2/transport/writing.cc +636 -0
  176. data/src/core/ext/transport/inproc/{inproc_plugin.c → inproc_plugin.cc} +5 -6
  177. data/src/core/ext/transport/inproc/{inproc_transport.c → inproc_transport.cc} +479 -544
  178. data/src/core/ext/transport/inproc/inproc_transport.h +4 -4
  179. data/src/core/lib/backoff/backoff.cc +80 -0
  180. data/src/core/lib/backoff/backoff.h +83 -0
  181. data/src/core/lib/channel/{channel_args.c → channel_args.cc} +92 -92
  182. data/src/core/lib/channel/channel_args.h +45 -37
  183. data/src/core/lib/channel/{channel_stack.c → channel_stack.cc} +67 -68
  184. data/src/core/lib/channel/channel_stack.h +76 -75
  185. data/src/core/lib/channel/{channel_stack_builder.c → channel_stack_builder.cc} +91 -91
  186. data/src/core/lib/channel/channel_stack_builder.h +45 -45
  187. data/src/core/lib/channel/{connected_channel.c → connected_channel.cc} +70 -70
  188. data/src/core/lib/channel/connected_channel.h +12 -4
  189. data/src/core/lib/channel/context.h +2 -2
  190. data/src/core/lib/channel/{handshaker.c → handshaker.cc} +7 -9
  191. data/src/core/lib/channel/handshaker.h +9 -1
  192. data/src/core/lib/channel/{handshaker_factory.c → handshaker_factory.cc} +7 -7
  193. data/src/core/lib/channel/handshaker_factory.h +18 -10
  194. data/src/core/lib/channel/{handshaker_registry.c → handshaker_registry.cc} +0 -0
  195. data/src/core/lib/channel/handshaker_registry.h +8 -0
  196. data/src/core/lib/compression/algorithm_metadata.h +8 -0
  197. data/src/core/lib/compression/{compression.c → compression.cc} +9 -9
  198. data/src/core/lib/compression/{message_compress.c → message_compress.cc} +0 -0
  199. data/src/core/lib/compression/message_compress.h +8 -0
  200. data/src/core/lib/compression/{stream_compression.c → stream_compression.cc} +12 -12
  201. data/src/core/lib/compression/stream_compression.h +27 -19
  202. data/src/core/lib/compression/{stream_compression_gzip.c → stream_compression_gzip.cc} +35 -36
  203. data/src/core/lib/compression/stream_compression_gzip.h +8 -0
  204. data/src/core/lib/compression/{stream_compression_identity.c → stream_compression_identity.cc} +19 -20
  205. data/src/core/lib/compression/stream_compression_identity.h +8 -0
  206. data/src/core/lib/debug/{stats.c → stats.cc} +19 -19
  207. data/src/core/lib/debug/stats.h +17 -9
  208. data/src/core/lib/debug/{stats_data.c → stats_data.cc} +45 -22
  209. data/src/core/lib/debug/stats_data.h +58 -19
  210. data/src/core/lib/debug/trace.cc +142 -0
  211. data/src/core/lib/debug/trace.h +74 -14
  212. data/src/core/lib/http/{format_request.c → format_request.cc} +10 -10
  213. data/src/core/lib/http/format_request.h +12 -4
  214. data/src/core/lib/http/{httpcli.c → httpcli.cc} +80 -80
  215. data/src/core/lib/http/httpcli.h +41 -33
  216. data/src/core/lib/http/{httpcli_security_connector.c → httpcli_security_connector.cc} +69 -55
  217. data/src/core/lib/http/{parser.c → parser.cc} +42 -42
  218. data/src/core/lib/http/parser.h +28 -20
  219. data/src/core/lib/{support → iomgr}/block_annotate.h +17 -8
  220. data/src/core/lib/iomgr/{call_combiner.c → call_combiner.cc} +29 -17
  221. data/src/core/lib/iomgr/call_combiner.h +9 -1
  222. data/src/core/lib/iomgr/closure.h +220 -62
  223. data/src/core/lib/iomgr/{combiner.c → combiner.cc} +63 -62
  224. data/src/core/lib/iomgr/combiner.h +16 -8
  225. data/src/core/lib/iomgr/{endpoint.c → endpoint.cc} +6 -0
  226. data/src/core/lib/iomgr/endpoint.h +47 -32
  227. data/src/core/lib/iomgr/endpoint_pair.h +12 -4
  228. data/src/core/lib/iomgr/{endpoint_pair_posix.c → endpoint_pair_posix.cc} +3 -3
  229. data/src/core/lib/iomgr/{endpoint_pair_uv.c → endpoint_pair_uv.cc} +2 -2
  230. data/src/core/lib/iomgr/{endpoint_pair_windows.c → endpoint_pair_windows.cc} +6 -6
  231. data/src/core/lib/iomgr/{error.c → error.cc} +125 -124
  232. data/src/core/lib/iomgr/error.h +32 -27
  233. data/src/core/lib/iomgr/error_internal.h +11 -2
  234. data/src/core/lib/iomgr/{ev_epoll1_linux.c → ev_epoll1_linux.cc} +214 -215
  235. data/src/core/lib/iomgr/ev_epoll1_linux.h +9 -1
  236. data/src/core/lib/iomgr/ev_epollex_linux.cc +1488 -0
  237. data/src/core/lib/iomgr/ev_epollex_linux.h +9 -1
  238. data/src/core/lib/iomgr/{ev_epollsig_linux.c → ev_epollsig_linux.cc} +304 -305
  239. data/src/core/lib/iomgr/ev_epollsig_linux.h +12 -4
  240. data/src/core/lib/iomgr/{ev_poll_posix.c → ev_poll_posix.cc} +272 -283
  241. data/src/core/lib/iomgr/ev_poll_posix.h +10 -2
  242. data/src/core/lib/iomgr/ev_posix.cc +288 -0
  243. data/src/core/lib/iomgr/ev_posix.h +75 -67
  244. data/src/core/lib/iomgr/{ev_windows.c → ev_windows.cc} +2 -2
  245. data/src/core/lib/iomgr/exec_ctx.cc +177 -0
  246. data/src/core/lib/iomgr/exec_ctx.h +35 -13
  247. data/src/core/lib/iomgr/{executor.c → executor.cc} +34 -35
  248. data/src/core/lib/iomgr/executor.h +12 -4
  249. data/src/core/lib/iomgr/{fork_posix.c → fork_posix.cc} +0 -0
  250. data/src/core/lib/iomgr/{fork_windows.c → fork_windows.cc} +0 -0
  251. data/src/core/lib/iomgr/gethostname.h +9 -1
  252. data/src/core/lib/iomgr/{gethostname_fallback.c → gethostname_fallback.cc} +2 -1
  253. data/src/core/lib/iomgr/{gethostname_host_name_max.c → gethostname_host_name_max.cc} +4 -3
  254. data/src/core/lib/iomgr/{gethostname_sysconf.c → gethostname_sysconf.cc} +3 -2
  255. data/src/core/lib/iomgr/{iocp_windows.c → iocp_windows.cc} +23 -25
  256. data/src/core/lib/iomgr/iocp_windows.h +17 -3
  257. data/src/core/lib/iomgr/{iomgr.c → iomgr.cc} +25 -19
  258. data/src/core/lib/iomgr/iomgr.h +11 -3
  259. data/src/core/lib/iomgr/iomgr_internal.h +13 -5
  260. data/src/core/lib/iomgr/{iomgr_posix.c → iomgr_posix.cc} +0 -1
  261. data/src/core/lib/iomgr/{iomgr_uv.c → iomgr_uv.cc} +1 -1
  262. data/src/core/lib/iomgr/iomgr_uv.h +8 -0
  263. data/src/core/lib/iomgr/{iomgr_windows.c → iomgr_windows.cc} +0 -0
  264. data/src/core/lib/iomgr/{is_epollexclusive_available.c → is_epollexclusive_available.cc} +1 -1
  265. data/src/core/lib/iomgr/is_epollexclusive_available.h +8 -0
  266. data/src/core/lib/iomgr/{load_file.c → load_file.cc} +12 -12
  267. data/src/core/lib/iomgr/load_file.h +2 -2
  268. data/src/core/lib/iomgr/{lockfree_event.c → lockfree_event.cc} +76 -68
  269. data/src/core/lib/iomgr/lockfree_event.h +30 -11
  270. data/src/core/lib/iomgr/{network_status_tracker.c → network_status_tracker.cc} +3 -2
  271. data/src/core/lib/iomgr/network_status_tracker.h +2 -2
  272. data/src/core/lib/iomgr/{polling_entity.c → polling_entity.cc} +18 -18
  273. data/src/core/lib/iomgr/polling_entity.h +21 -13
  274. data/src/core/lib/iomgr/pollset.h +17 -11
  275. data/src/core/lib/iomgr/pollset_set.h +23 -15
  276. data/src/core/lib/iomgr/{pollset_set_uv.c → pollset_set_uv.cc} +0 -0
  277. data/src/core/lib/iomgr/{pollset_set_windows.c → pollset_set_windows.cc} +0 -0
  278. data/src/core/lib/iomgr/{pollset_uv.c → pollset_uv.cc} +31 -29
  279. data/src/core/lib/iomgr/pollset_uv.h +8 -0
  280. data/src/core/lib/iomgr/{pollset_windows.c → pollset_windows.cc} +24 -24
  281. data/src/core/lib/iomgr/pollset_windows.h +17 -4
  282. data/src/core/lib/iomgr/port.h +10 -0
  283. data/src/core/lib/iomgr/resolve_address.h +18 -10
  284. data/src/core/lib/iomgr/{resolve_address_posix.c → resolve_address_posix.cc} +40 -40
  285. data/src/core/lib/iomgr/{resolve_address_uv.c → resolve_address_uv.cc} +61 -56
  286. data/src/core/lib/iomgr/{resolve_address_windows.c → resolve_address_windows.cc} +36 -34
  287. data/src/core/lib/iomgr/{resource_quota.c → resource_quota.cc} +209 -180
  288. data/src/core/lib/iomgr/resource_quota.h +45 -37
  289. data/src/core/lib/iomgr/{sockaddr_utils.c → sockaddr_utils.cc} +61 -61
  290. data/src/core/lib/iomgr/sockaddr_utils.h +23 -15
  291. data/src/core/lib/iomgr/sockaddr_windows.h +6 -0
  292. data/src/core/lib/iomgr/{socket_factory_posix.c → socket_factory_posix.cc} +20 -20
  293. data/src/core/lib/iomgr/socket_factory_posix.h +15 -15
  294. data/src/core/lib/iomgr/{socket_mutator.c → socket_mutator.cc} +18 -18
  295. data/src/core/lib/iomgr/socket_mutator.h +11 -11
  296. data/src/core/lib/iomgr/socket_utils.h +9 -1
  297. data/src/core/lib/iomgr/{socket_utils_common_posix.c → socket_utils_common_posix.cc} +28 -28
  298. data/src/core/lib/iomgr/{socket_utils_linux.c → socket_utils_linux.cc} +3 -3
  299. data/src/core/lib/iomgr/{socket_utils_posix.c → socket_utils_posix.cc} +3 -3
  300. data/src/core/lib/iomgr/socket_utils_posix.h +26 -18
  301. data/src/core/lib/iomgr/{socket_utils_uv.c → socket_utils_uv.cc} +1 -1
  302. data/src/core/lib/iomgr/{socket_utils_windows.c → socket_utils_windows.cc} +2 -2
  303. data/src/core/lib/iomgr/{socket_windows.c → socket_windows.cc} +18 -18
  304. data/src/core/lib/iomgr/socket_windows.h +26 -13
  305. data/src/core/lib/iomgr/tcp_client.h +14 -6
  306. data/src/core/lib/iomgr/{tcp_client_posix.c → tcp_client_posix.cc} +69 -70
  307. data/src/core/lib/iomgr/tcp_client_posix.h +11 -3
  308. data/src/core/lib/iomgr/{tcp_client_uv.c → tcp_client_uv.cc} +47 -48
  309. data/src/core/lib/iomgr/{tcp_client_windows.c → tcp_client_windows.cc} +46 -44
  310. data/src/core/lib/iomgr/{tcp_posix.c → tcp_posix.cc} +198 -175
  311. data/src/core/lib/iomgr/tcp_posix.h +15 -7
  312. data/src/core/lib/iomgr/tcp_server.h +31 -23
  313. data/src/core/lib/iomgr/{tcp_server_posix.c → tcp_server_posix.cc} +78 -77
  314. data/src/core/lib/iomgr/tcp_server_utils_posix.h +27 -19
  315. data/src/core/lib/iomgr/{tcp_server_utils_posix_common.c → tcp_server_utils_posix_common.cc} +27 -27
  316. data/src/core/lib/iomgr/{tcp_server_utils_posix_ifaddrs.c → tcp_server_utils_posix_ifaddrs.cc} +25 -25
  317. data/src/core/lib/iomgr/{tcp_server_utils_posix_noifaddrs.c → tcp_server_utils_posix_noifaddrs.cc} +2 -2
  318. data/src/core/lib/iomgr/{tcp_server_uv.c → tcp_server_uv.cc} +133 -105
  319. data/src/core/lib/iomgr/{tcp_server_windows.c → tcp_server_windows.cc} +81 -77
  320. data/src/core/lib/iomgr/tcp_uv.cc +420 -0
  321. data/src/core/lib/iomgr/tcp_uv.h +18 -4
  322. data/src/core/lib/iomgr/{tcp_windows.c → tcp_windows.cc} +90 -79
  323. data/src/core/lib/iomgr/tcp_windows.h +17 -4
  324. data/src/core/lib/iomgr/{time_averaged_stats.c → time_averaged_stats.cc} +0 -0
  325. data/src/core/lib/iomgr/time_averaged_stats.h +8 -0
  326. data/src/core/lib/iomgr/timer.h +16 -9
  327. data/src/core/lib/iomgr/{timer_generic.c → timer_generic.cc} +130 -171
  328. data/src/core/lib/iomgr/timer_generic.h +4 -4
  329. data/src/core/lib/iomgr/{timer_heap.c → timer_heap.cc} +20 -21
  330. data/src/core/lib/iomgr/timer_heap.h +16 -8
  331. data/src/core/lib/iomgr/{timer_manager.c → timer_manager.cc} +54 -52
  332. data/src/core/lib/iomgr/timer_manager.h +8 -0
  333. data/src/core/lib/iomgr/{timer_uv.c → timer_uv.cc} +22 -24
  334. data/src/core/lib/iomgr/timer_uv.h +2 -2
  335. data/src/core/lib/iomgr/{udp_server.c → udp_server.cc} +75 -75
  336. data/src/core/lib/iomgr/udp_server.h +25 -17
  337. data/src/core/lib/iomgr/{unix_sockets_posix.c → unix_sockets_posix.cc} +22 -21
  338. data/src/core/lib/iomgr/unix_sockets_posix.h +14 -6
  339. data/src/core/lib/iomgr/{unix_sockets_posix_noop.c → unix_sockets_posix_noop.cc} +5 -5
  340. data/src/core/lib/iomgr/{wakeup_fd_cv.c → wakeup_fd_cv.cc} +2 -2
  341. data/src/core/lib/iomgr/wakeup_fd_cv.h +10 -0
  342. data/src/core/lib/iomgr/{wakeup_fd_eventfd.c → wakeup_fd_eventfd.cc} +0 -0
  343. data/src/core/lib/iomgr/{wakeup_fd_nospecial.c → wakeup_fd_nospecial.cc} +0 -0
  344. data/src/core/lib/iomgr/{wakeup_fd_pipe.c → wakeup_fd_pipe.cc} +1 -0
  345. data/src/core/lib/iomgr/wakeup_fd_pipe.h +9 -1
  346. data/src/core/lib/iomgr/{wakeup_fd_posix.c → wakeup_fd_posix.cc} +6 -7
  347. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -0
  348. data/src/core/lib/json/{json.c → json.cc} +0 -0
  349. data/src/core/lib/json/json.h +8 -0
  350. data/src/core/lib/json/{json_reader.c → json_reader.cc} +18 -18
  351. data/src/core/lib/json/json_reader.h +26 -18
  352. data/src/core/lib/json/{json_string.c → json_string.cc} +57 -57
  353. data/src/core/lib/json/{json_writer.c → json_writer.cc} +20 -20
  354. data/src/core/lib/json/json_writer.h +23 -15
  355. data/src/core/lib/profiling/{basic_timers.c → basic_timers.cc} +34 -34
  356. data/src/core/lib/profiling/{stap_timers.c → stap_timers.cc} +5 -5
  357. data/src/core/lib/profiling/timers.h +6 -6
  358. data/src/core/lib/security/context/{security_context.c → security_context.cc} +98 -95
  359. data/src/core/lib/security/context/security_context.h +27 -29
  360. data/src/core/lib/security/credentials/composite/{composite_credentials.c → composite_credentials.cc} +79 -73
  361. data/src/core/lib/security/credentials/composite/composite_credentials.h +17 -9
  362. data/src/core/lib/security/credentials/{credentials.c → credentials.cc} +97 -92
  363. data/src/core/lib/security/credentials/credentials.h +83 -75
  364. data/src/core/lib/security/credentials/{credentials_metadata.c → credentials_metadata.cc} +7 -6
  365. data/src/core/lib/security/credentials/fake/{fake_credentials.c → fake_credentials.cc} +39 -36
  366. data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -5
  367. data/src/core/lib/security/credentials/google_default/{credentials_generic.c → credentials_generic.cc} +5 -5
  368. data/src/core/lib/security/credentials/google_default/{google_default_credentials.c → google_default_credentials.cc} +55 -55
  369. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -1
  370. data/src/core/lib/security/credentials/iam/{iam_credentials.c → iam_credentials.cc} +19 -18
  371. data/src/core/lib/security/credentials/jwt/{json_token.c → json_token.cc} +80 -75
  372. data/src/core/lib/security/credentials/jwt/json_token.h +23 -15
  373. data/src/core/lib/security/credentials/jwt/{jwt_credentials.c → jwt_credentials.cc} +45 -41
  374. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
  375. data/src/core/lib/security/credentials/jwt/{jwt_verifier.c → jwt_verifier.cc} +262 -252
  376. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +38 -30
  377. data/src/core/lib/security/credentials/oauth2/{oauth2_credentials.c → oauth2_credentials.cc} +138 -141
  378. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +30 -22
  379. data/src/core/lib/security/credentials/plugin/{plugin_credentials.c → plugin_credentials.cc} +52 -53
  380. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +7 -7
  381. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +344 -0
  382. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +27 -0
  383. data/src/core/lib/security/transport/auth_filters.h +16 -0
  384. data/src/core/lib/security/transport/{client_auth_filter.c → client_auth_filter.cc} +127 -115
  385. data/src/core/lib/security/transport/{lb_targets_info.c → lb_targets_info.cc} +16 -13
  386. data/src/core/lib/security/transport/lb_targets_info.h +11 -3
  387. data/src/core/lib/security/transport/{secure_endpoint.c → secure_endpoint.cc} +84 -76
  388. data/src/core/lib/security/transport/secure_endpoint.h +13 -5
  389. data/src/core/lib/security/transport/security_connector.cc +1121 -0
  390. data/src/core/lib/security/transport/security_connector.h +97 -79
  391. data/src/core/lib/security/transport/{security_handshaker.c → security_handshaker.cc} +139 -132
  392. data/src/core/lib/security/transport/security_handshaker.h +11 -3
  393. data/src/core/lib/security/transport/{server_auth_filter.c → server_auth_filter.cc} +68 -68
  394. data/src/core/lib/security/transport/{tsi_error.c → tsi_error.cc} +1 -1
  395. data/src/core/lib/security/transport/tsi_error.h +9 -1
  396. data/src/core/lib/security/util/{json_util.c → json_util.cc} +11 -11
  397. data/src/core/lib/security/util/json_util.h +12 -4
  398. data/src/core/lib/slice/{b64.c → b64.cc} +15 -15
  399. data/src/core/lib/slice/b64.h +12 -4
  400. data/src/core/lib/slice/{percent_encoding.c → percent_encoding.cc} +15 -15
  401. data/src/core/lib/slice/percent_encoding.h +11 -3
  402. data/src/core/lib/slice/{slice.c → slice.cc} +64 -64
  403. data/src/core/lib/slice/{slice_buffer.c → slice_buffer.cc} +38 -38
  404. data/src/core/lib/slice/{slice_hash_table.c → slice_hash_table.cc} +7 -7
  405. data/src/core/lib/slice/slice_hash_table.h +19 -11
  406. data/src/core/lib/slice/{slice_intern.c → slice_intern.cc} +35 -34
  407. data/src/core/lib/slice/slice_internal.h +17 -6
  408. data/src/core/lib/slice/{slice_string_helpers.c → slice_string_helpers.cc} +9 -9
  409. data/src/core/lib/slice/slice_string_helpers.h +3 -3
  410. data/src/core/lib/support/abstract.h +29 -0
  411. data/src/core/lib/support/{alloc.c → alloc.cc} +22 -22
  412. data/src/core/lib/support/{arena.c → arena.cc} +12 -12
  413. data/src/core/lib/support/arena.h +11 -3
  414. data/src/core/lib/support/{atm.c → atm.cc} +1 -1
  415. data/src/core/lib/support/{avl.c → avl.cc} +71 -70
  416. data/src/core/lib/support/{cmdline.c → cmdline.cc} +62 -62
  417. data/src/core/lib/support/{cpu_iphone.c → cpu_iphone.cc} +2 -0
  418. data/src/core/lib/support/{cpu_linux.c → cpu_linux.cc} +10 -0
  419. data/src/core/lib/support/{cpu_posix.c → cpu_posix.cc} +27 -4
  420. data/src/core/lib/support/{cpu_windows.c → cpu_windows.cc} +1 -0
  421. data/src/core/lib/support/env.h +3 -3
  422. data/src/core/lib/support/{env_linux.c → env_linux.cc} +11 -11
  423. data/src/core/lib/support/{env_posix.c → env_posix.cc} +4 -4
  424. data/src/core/lib/support/{env_windows.c → env_windows.cc} +5 -5
  425. data/src/core/lib/support/{fork.c → fork.cc} +2 -2
  426. data/src/core/lib/support/{histogram.c → histogram.cc} +25 -26
  427. data/src/core/lib/support/{host_port.c → host_port.cc} +16 -16
  428. data/src/core/lib/support/{log.c → log.cc} +8 -8
  429. data/src/core/lib/support/{log_android.c → log_android.cc} +7 -7
  430. data/src/core/lib/support/{log_linux.c → log_linux.cc} +8 -8
  431. data/src/core/lib/support/{log_posix.c → log_posix.cc} +9 -10
  432. data/src/core/lib/support/{log_windows.c → log_windows.cc} +7 -7
  433. data/src/core/lib/support/manual_constructor.h +211 -0
  434. data/src/core/lib/support/memory.h +41 -0
  435. data/src/core/lib/support/mpscq.cc +114 -0
  436. data/src/core/lib/support/mpscq.h +45 -7
  437. data/src/core/lib/support/{murmur_hash.c → murmur_hash.cc} +9 -12
  438. data/src/core/lib/support/murmur_hash.h +9 -1
  439. data/src/core/lib/support/spinlock.h +8 -1
  440. data/src/core/lib/support/{string.c → string.cc} +56 -55
  441. data/src/core/lib/support/string.h +21 -21
  442. data/src/core/lib/support/{string_posix.c → string_posix.cc} +5 -4
  443. data/src/core/lib/support/{string_util_windows.c → string_util_windows.cc} +9 -6
  444. data/src/core/lib/support/{string_windows.c → string_windows.cc} +3 -2
  445. data/src/core/lib/support/string_windows.h +8 -0
  446. data/src/core/lib/support/{subprocess_posix.c → subprocess_posix.cc} +13 -13
  447. data/src/core/lib/support/{subprocess_windows.c → subprocess_windows.cc} +9 -9
  448. data/src/core/lib/support/{sync.c → sync.cc} +22 -22
  449. data/src/core/lib/support/{sync_posix.c → sync_posix.cc} +6 -2
  450. data/src/core/lib/support/{sync_windows.c → sync_windows.cc} +14 -14
  451. data/src/core/lib/support/{thd.c → thd.cc} +0 -0
  452. data/src/core/lib/support/{thd_posix.c → thd_posix.cc} +10 -10
  453. data/src/core/lib/support/{thd_windows.c → thd_windows.cc} +10 -10
  454. data/src/core/lib/support/{time.c → time.cc} +0 -0
  455. data/src/core/lib/support/{time_posix.c → time_posix.cc} +5 -6
  456. data/src/core/lib/support/{time_precise.c → time_precise.cc} +6 -4
  457. data/src/core/lib/support/time_precise.h +9 -1
  458. data/src/core/lib/support/{time_windows.c → time_windows.cc} +2 -3
  459. data/src/core/lib/support/{tls_pthread.c → tls_pthread.cc} +2 -2
  460. data/src/core/lib/support/tmpfile.h +1 -1
  461. data/src/core/lib/support/{tmpfile_msys.c → tmpfile_msys.cc} +2 -2
  462. data/src/core/lib/support/{tmpfile_posix.c → tmpfile_posix.cc} +7 -7
  463. data/src/core/lib/support/{tmpfile_windows.c → tmpfile_windows.cc} +2 -2
  464. data/src/core/lib/support/{wrap_memcpy.c → wrap_memcpy.cc} +4 -2
  465. data/src/core/lib/surface/{alarm.c → alarm.cc} +32 -31
  466. data/src/core/lib/surface/alarm_internal.h +10 -2
  467. data/src/core/lib/surface/{api_trace.c → api_trace.cc} +1 -1
  468. data/src/core/lib/surface/api_trace.h +2 -2
  469. data/src/core/lib/surface/{byte_buffer.c → byte_buffer.cc} +13 -13
  470. data/src/core/lib/surface/{byte_buffer_reader.c → byte_buffer_reader.cc} +9 -9
  471. data/src/core/lib/surface/{call.c → call.cc} +379 -372
  472. data/src/core/lib/surface/call.h +37 -38
  473. data/src/core/lib/surface/{call_details.c → call_details.cc} +0 -0
  474. data/src/core/lib/surface/{call_log_batch.c → call_log_batch.cc} +13 -11
  475. data/src/core/lib/surface/call_test_only.h +5 -5
  476. data/src/core/lib/surface/{channel.c → channel.cc} +94 -95
  477. data/src/core/lib/surface/channel.h +29 -21
  478. data/src/core/lib/surface/{channel_init.c → channel_init.cc} +13 -13
  479. data/src/core/lib/surface/channel_init.h +6 -6
  480. data/src/core/lib/surface/{channel_ping.c → channel_ping.cc} +12 -12
  481. data/src/core/lib/surface/{channel_stack_type.c → channel_stack_type.cc} +1 -1
  482. data/src/core/lib/surface/channel_stack_type.h +9 -1
  483. data/src/core/lib/surface/{completion_queue.c → completion_queue.cc} +416 -379
  484. data/src/core/lib/surface/completion_queue.h +29 -29
  485. data/src/core/lib/surface/{completion_queue_factory.c → completion_queue_factory.cc} +1 -1
  486. data/src/core/lib/surface/completion_queue_factory.h +8 -0
  487. data/src/core/lib/surface/{event_string.c → event_string.cc} +9 -9
  488. data/src/core/lib/surface/event_string.h +9 -1
  489. data/src/core/lib/surface/{init.c → init.cc} +16 -39
  490. data/src/core/lib/surface/init.h +8 -0
  491. data/src/core/lib/surface/{init_secure.c → init_secure.cc} +12 -25
  492. data/src/core/lib/surface/lame_client.cc +38 -40
  493. data/src/core/lib/surface/lame_client.h +8 -0
  494. data/src/core/lib/surface/{metadata_array.c → metadata_array.cc} +0 -0
  495. data/src/core/lib/surface/{server.c → server.cc} +340 -404
  496. data/src/core/lib/surface/server.h +22 -14
  497. data/src/core/lib/surface/{validate_metadata.c → validate_metadata.cc} +10 -9
  498. data/src/core/lib/surface/validate_metadata.h +10 -2
  499. data/src/core/lib/surface/{version.c → version.cc} +2 -2
  500. data/src/core/lib/transport/bdp_estimator.cc +84 -0
  501. data/src/core/lib/transport/bdp_estimator.h +67 -42
  502. data/src/core/lib/transport/{byte_stream.c → byte_stream.cc} +51 -51
  503. data/src/core/lib/transport/byte_stream.h +41 -33
  504. data/src/core/lib/transport/{connectivity_state.c → connectivity_state.cc} +36 -40
  505. data/src/core/lib/transport/connectivity_state.h +29 -21
  506. data/src/core/lib/transport/{error_utils.c → error_utils.cc} +26 -22
  507. data/src/core/lib/transport/error_utils.h +18 -6
  508. data/src/core/lib/transport/{metadata.c → metadata.cc} +92 -88
  509. data/src/core/lib/transport/metadata.h +22 -20
  510. data/src/core/lib/transport/{metadata_batch.c → metadata_batch.cc} +78 -79
  511. data/src/core/lib/transport/metadata_batch.h +46 -45
  512. data/src/core/lib/transport/pid_controller.cc +48 -0
  513. data/src/core/lib/transport/pid_controller.h +84 -32
  514. data/src/core/lib/transport/{service_config.c → service_config.cc} +66 -48
  515. data/src/core/lib/transport/service_config.h +11 -2
  516. data/src/core/lib/transport/{static_metadata.c → static_metadata.cc} +2 -2
  517. data/src/core/lib/transport/static_metadata.h +30 -23
  518. data/src/core/lib/transport/{status_conversion.c → status_conversion.cc} +4 -3
  519. data/src/core/lib/transport/status_conversion.h +12 -2
  520. data/src/core/lib/transport/{timeout_encoding.c → timeout_encoding.cc} +28 -61
  521. data/src/core/lib/transport/timeout_encoding.h +11 -2
  522. data/src/core/lib/transport/{transport.c → transport.cc} +79 -79
  523. data/src/core/lib/transport/transport.h +78 -80
  524. data/src/core/lib/transport/transport_impl.h +27 -19
  525. data/src/core/lib/transport/{transport_op_string.c → transport_op_string.cc} +32 -30
  526. data/src/core/plugin_registry/{grpc_plugin_registry.c → grpc_plugin_registry.cc} +34 -38
  527. data/src/core/tsi/{fake_transport_security.c → fake_transport_security.cc} +141 -132
  528. data/src/core/tsi/fake_transport_security.h +5 -5
  529. data/src/core/tsi/{gts_transport_security.c → gts_transport_security.cc} +4 -4
  530. data/src/core/tsi/gts_transport_security.h +11 -3
  531. data/src/core/tsi/{ssl_transport_security.c → ssl_transport_security.cc} +309 -300
  532. data/src/core/tsi/ssl_transport_security.h +25 -25
  533. data/src/core/tsi/ssl_types.h +8 -0
  534. data/src/core/tsi/{transport_security.c → transport_security.cc} +94 -87
  535. data/src/core/tsi/transport_security.h +55 -55
  536. data/src/core/tsi/{transport_security_adapter.c → transport_security_adapter.cc} +58 -55
  537. data/src/core/tsi/transport_security_adapter.h +2 -2
  538. data/src/core/tsi/{transport_security_grpc.c → transport_security_grpc.cc} +21 -21
  539. data/src/core/tsi/transport_security_grpc.h +19 -19
  540. data/src/core/tsi/transport_security_interface.h +41 -41
  541. data/src/ruby/ext/grpc/extconf.rb +4 -2
  542. data/src/ruby/ext/grpc/rb_byte_buffer.c +5 -5
  543. data/src/ruby/ext/grpc/rb_byte_buffer.h +2 -2
  544. data/src/ruby/ext/grpc/rb_call.c +41 -42
  545. data/src/ruby/ext/grpc/rb_call.h +6 -6
  546. data/src/ruby/ext/grpc/rb_call_credentials.c +30 -30
  547. data/src/ruby/ext/grpc/rb_channel.c +87 -87
  548. data/src/ruby/ext/grpc/rb_channel_credentials.c +23 -23
  549. data/src/ruby/ext/grpc/rb_completion_queue.c +11 -11
  550. data/src/ruby/ext/grpc/rb_completion_queue.h +3 -3
  551. data/src/ruby/ext/grpc/rb_compression_options.c +20 -20
  552. data/src/ruby/ext/grpc/rb_event_thread.c +14 -14
  553. data/src/ruby/ext/grpc/rb_event_thread.h +1 -1
  554. data/src/ruby/ext/grpc/rb_grpc.c +8 -8
  555. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +16 -58
  556. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +242 -306
  557. data/src/ruby/ext/grpc/rb_server.c +23 -23
  558. data/src/ruby/ext/grpc/rb_server_credentials.c +13 -13
  559. data/src/ruby/lib/grpc/generic/rpc_server.rb +25 -12
  560. data/src/ruby/lib/grpc/version.rb +1 -1
  561. data/src/ruby/pb/grpc/health/checker.rb +14 -0
  562. data/src/ruby/spec/pb/health/checker_spec.rb +29 -0
  563. data/third_party/cares/config_freebsd/ares_config.h +502 -0
  564. data/third_party/cares/config_openbsd/ares_config.h +502 -0
  565. metadata +302 -328
  566. data/src/core/ext/census/aggregation.h +0 -51
  567. data/src/core/ext/census/base_resources.c +0 -56
  568. data/src/core/ext/census/base_resources.h +0 -24
  569. data/src/core/ext/census/census_interface.h +0 -61
  570. data/src/core/ext/census/census_rpc_stats.h +0 -86
  571. data/src/core/ext/census/context.c +0 -496
  572. data/src/core/ext/census/gen/census.pb.c +0 -161
  573. data/src/core/ext/census/gen/census.pb.h +0 -280
  574. data/src/core/ext/census/gen/trace_context.pb.c +0 -39
  575. data/src/core/ext/census/gen/trace_context.pb.h +0 -78
  576. data/src/core/ext/census/grpc_filter.c +0 -196
  577. data/src/core/ext/census/grpc_plugin.c +0 -70
  578. data/src/core/ext/census/initialize.c +0 -51
  579. data/src/core/ext/census/intrusive_hash_map.c +0 -305
  580. data/src/core/ext/census/intrusive_hash_map.h +0 -152
  581. data/src/core/ext/census/intrusive_hash_map_internal.h +0 -48
  582. data/src/core/ext/census/mlog.c +0 -586
  583. data/src/core/ext/census/mlog.h +0 -80
  584. data/src/core/ext/census/operation.c +0 -48
  585. data/src/core/ext/census/placeholders.c +0 -49
  586. data/src/core/ext/census/resource.c +0 -303
  587. data/src/core/ext/census/resource.h +0 -48
  588. data/src/core/ext/census/rpc_metric_id.h +0 -36
  589. data/src/core/ext/census/trace_context.c +0 -71
  590. data/src/core/ext/census/trace_context.h +0 -56
  591. data/src/core/ext/census/trace_label.h +0 -46
  592. data/src/core/ext/census/trace_propagation.h +0 -48
  593. data/src/core/ext/census/trace_status.h +0 -30
  594. data/src/core/ext/census/trace_string.h +0 -35
  595. data/src/core/ext/census/tracing.c +0 -55
  596. data/src/core/ext/census/tracing.h +0 -109
  597. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +0 -714
  598. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +0 -924
  599. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +0 -60
  600. data/src/core/ext/transport/chttp2/transport/flow_control.c +0 -502
  601. data/src/core/ext/transport/chttp2/transport/writing.c +0 -534
  602. data/src/core/lib/debug/trace.c +0 -146
  603. data/src/core/lib/iomgr/closure.c +0 -219
  604. data/src/core/lib/iomgr/ev_epollex_linux.c +0 -1461
  605. data/src/core/lib/iomgr/ev_posix.c +0 -266
  606. data/src/core/lib/iomgr/exec_ctx.c +0 -113
  607. data/src/core/lib/iomgr/tcp_uv.c +0 -381
  608. data/src/core/lib/security/credentials/ssl/ssl_credentials.c +0 -194
  609. data/src/core/lib/security/transport/security_connector.c +0 -914
  610. data/src/core/lib/support/backoff.c +0 -72
  611. data/src/core/lib/support/backoff.h +0 -56
  612. data/src/core/lib/support/mpscq.c +0 -79
  613. data/src/core/lib/support/stack_lockfree.c +0 -137
  614. data/src/core/lib/support/stack_lockfree.h +0 -38
  615. data/src/core/lib/transport/bdp_estimator.c +0 -110
  616. data/src/core/lib/transport/pid_controller.c +0 -63
@@ -23,8 +23,8 @@
23
23
  void grpc_network_status_init(void);
24
24
  void grpc_network_status_shutdown(void);
25
25
 
26
- void grpc_network_status_register_endpoint(grpc_endpoint *ep);
27
- void grpc_network_status_unregister_endpoint(grpc_endpoint *ep);
26
+ void grpc_network_status_register_endpoint(grpc_endpoint* ep);
27
+ void grpc_network_status_unregister_endpoint(grpc_endpoint* ep);
28
28
  void grpc_network_status_shutdown_all_endpoints();
29
29
 
30
30
  #endif /* GRPC_CORE_LIB_IOMGR_NETWORK_STATUS_TRACKER_H */
@@ -22,7 +22,7 @@
22
22
  #include "src/core/lib/iomgr/polling_entity.h"
23
23
 
24
24
  grpc_polling_entity grpc_polling_entity_create_from_pollset_set(
25
- grpc_pollset_set *pollset_set) {
25
+ grpc_pollset_set* pollset_set) {
26
26
  grpc_polling_entity pollent;
27
27
  pollent.pollent.pollset_set = pollset_set;
28
28
  pollent.tag = GRPC_POLLS_POLLSET_SET;
@@ -30,40 +30,40 @@ grpc_polling_entity grpc_polling_entity_create_from_pollset_set(
30
30
  }
31
31
 
32
32
  grpc_polling_entity grpc_polling_entity_create_from_pollset(
33
- grpc_pollset *pollset) {
33
+ grpc_pollset* pollset) {
34
34
  grpc_polling_entity pollent;
35
35
  pollent.pollent.pollset = pollset;
36
36
  pollent.tag = GRPC_POLLS_POLLSET;
37
37
  return pollent;
38
38
  }
39
39
 
40
- grpc_pollset *grpc_polling_entity_pollset(grpc_polling_entity *pollent) {
40
+ grpc_pollset* grpc_polling_entity_pollset(grpc_polling_entity* pollent) {
41
41
  if (pollent->tag == GRPC_POLLS_POLLSET) {
42
42
  return pollent->pollent.pollset;
43
43
  }
44
- return NULL;
44
+ return nullptr;
45
45
  }
46
46
 
47
- grpc_pollset_set *grpc_polling_entity_pollset_set(
48
- grpc_polling_entity *pollent) {
47
+ grpc_pollset_set* grpc_polling_entity_pollset_set(
48
+ grpc_polling_entity* pollent) {
49
49
  if (pollent->tag == GRPC_POLLS_POLLSET_SET) {
50
50
  return pollent->pollent.pollset_set;
51
51
  }
52
- return NULL;
52
+ return nullptr;
53
53
  }
54
54
 
55
- bool grpc_polling_entity_is_empty(const grpc_polling_entity *pollent) {
55
+ bool grpc_polling_entity_is_empty(const grpc_polling_entity* pollent) {
56
56
  return pollent->tag == GRPC_POLLS_NONE;
57
57
  }
58
58
 
59
- void grpc_polling_entity_add_to_pollset_set(grpc_exec_ctx *exec_ctx,
60
- grpc_polling_entity *pollent,
61
- grpc_pollset_set *pss_dst) {
59
+ void grpc_polling_entity_add_to_pollset_set(grpc_exec_ctx* exec_ctx,
60
+ grpc_polling_entity* pollent,
61
+ grpc_pollset_set* pss_dst) {
62
62
  if (pollent->tag == GRPC_POLLS_POLLSET) {
63
- GPR_ASSERT(pollent->pollent.pollset != NULL);
63
+ GPR_ASSERT(pollent->pollent.pollset != nullptr);
64
64
  grpc_pollset_set_add_pollset(exec_ctx, pss_dst, pollent->pollent.pollset);
65
65
  } else if (pollent->tag == GRPC_POLLS_POLLSET_SET) {
66
- GPR_ASSERT(pollent->pollent.pollset_set != NULL);
66
+ GPR_ASSERT(pollent->pollent.pollset_set != nullptr);
67
67
  grpc_pollset_set_add_pollset_set(exec_ctx, pss_dst,
68
68
  pollent->pollent.pollset_set);
69
69
  } else {
@@ -72,14 +72,14 @@ void grpc_polling_entity_add_to_pollset_set(grpc_exec_ctx *exec_ctx,
72
72
  }
73
73
  }
74
74
 
75
- void grpc_polling_entity_del_from_pollset_set(grpc_exec_ctx *exec_ctx,
76
- grpc_polling_entity *pollent,
77
- grpc_pollset_set *pss_dst) {
75
+ void grpc_polling_entity_del_from_pollset_set(grpc_exec_ctx* exec_ctx,
76
+ grpc_polling_entity* pollent,
77
+ grpc_pollset_set* pss_dst) {
78
78
  if (pollent->tag == GRPC_POLLS_POLLSET) {
79
- GPR_ASSERT(pollent->pollent.pollset != NULL);
79
+ GPR_ASSERT(pollent->pollent.pollset != nullptr);
80
80
  grpc_pollset_set_del_pollset(exec_ctx, pss_dst, pollent->pollent.pollset);
81
81
  } else if (pollent->tag == GRPC_POLLS_POLLSET_SET) {
82
- GPR_ASSERT(pollent->pollent.pollset_set != NULL);
82
+ GPR_ASSERT(pollent->pollent.pollset_set != nullptr);
83
83
  grpc_pollset_set_del_pollset_set(exec_ctx, pss_dst,
84
84
  pollent->pollent.pollset_set);
85
85
  } else {
@@ -22,6 +22,10 @@
22
22
  #include "src/core/lib/iomgr/pollset.h"
23
23
  #include "src/core/lib/iomgr/pollset_set.h"
24
24
 
25
+ #ifdef __cplusplus
26
+ extern "C" {
27
+ #endif
28
+
25
29
  typedef enum grpc_pollset_tag {
26
30
  GRPC_POLLS_NONE,
27
31
  GRPC_POLLS_POLLSET,
@@ -34,34 +38,38 @@ typedef enum grpc_pollset_tag {
34
38
 
35
39
  typedef struct grpc_polling_entity {
36
40
  union {
37
- grpc_pollset *pollset;
38
- grpc_pollset_set *pollset_set;
41
+ grpc_pollset* pollset;
42
+ grpc_pollset_set* pollset_set;
39
43
  } pollent;
40
44
  grpc_pollset_tag tag;
41
45
  } grpc_polling_entity;
42
46
 
43
47
  grpc_polling_entity grpc_polling_entity_create_from_pollset_set(
44
- grpc_pollset_set *pollset_set);
48
+ grpc_pollset_set* pollset_set);
45
49
  grpc_polling_entity grpc_polling_entity_create_from_pollset(
46
- grpc_pollset *pollset);
50
+ grpc_pollset* pollset);
47
51
 
48
52
  /** If \a pollent contains a pollset, return it. Otherwise, return NULL */
49
- grpc_pollset *grpc_polling_entity_pollset(grpc_polling_entity *pollent);
53
+ grpc_pollset* grpc_polling_entity_pollset(grpc_polling_entity* pollent);
50
54
 
51
55
  /** If \a pollent contains a pollset_set, return it. Otherwise, return NULL */
52
- grpc_pollset_set *grpc_polling_entity_pollset_set(grpc_polling_entity *pollent);
56
+ grpc_pollset_set* grpc_polling_entity_pollset_set(grpc_polling_entity* pollent);
53
57
 
54
- bool grpc_polling_entity_is_empty(const grpc_polling_entity *pollent);
58
+ bool grpc_polling_entity_is_empty(const grpc_polling_entity* pollent);
55
59
 
56
60
  /** Add the pollset or pollset_set in \a pollent to the destination pollset_set
57
61
  * \a * pss_dst */
58
- void grpc_polling_entity_add_to_pollset_set(grpc_exec_ctx *exec_ctx,
59
- grpc_polling_entity *pollent,
60
- grpc_pollset_set *pss_dst);
62
+ void grpc_polling_entity_add_to_pollset_set(grpc_exec_ctx* exec_ctx,
63
+ grpc_polling_entity* pollent,
64
+ grpc_pollset_set* pss_dst);
61
65
 
62
66
  /** Delete the pollset or pollset_set in \a pollent from the destination
63
67
  * pollset_set \a * pss_dst */
64
- void grpc_polling_entity_del_from_pollset_set(grpc_exec_ctx *exec_ctx,
65
- grpc_polling_entity *pollent,
66
- grpc_pollset_set *pss_dst);
68
+ void grpc_polling_entity_del_from_pollset_set(grpc_exec_ctx* exec_ctx,
69
+ grpc_polling_entity* pollent,
70
+ grpc_pollset_set* pss_dst);
71
+ #ifdef __cplusplus
72
+ }
73
+ #endif
74
+
67
75
  #endif /* GRPC_CORE_LIB_IOMGR_POLLING_ENTITY_H */
@@ -25,10 +25,12 @@
25
25
 
26
26
  #include "src/core/lib/iomgr/exec_ctx.h"
27
27
 
28
- #ifndef NDEBUG
29
- extern grpc_tracer_flag grpc_trace_fd_refcount;
28
+ #ifdef __cplusplus
29
+ extern "C" {
30
30
  #endif
31
31
 
32
+ extern grpc_core::DebugOnlyTraceFlag grpc_trace_fd_refcount;
33
+
32
34
  /* A grpc_pollset is a set of file descriptors that a higher level item is
33
35
  interested in. For example:
34
36
  - a server will typically keep a pollset containing all connected channels,
@@ -41,12 +43,12 @@ typedef struct grpc_pollset_worker grpc_pollset_worker;
41
43
 
42
44
  size_t grpc_pollset_size(void);
43
45
  /* Initialize a pollset: assumes *pollset contains all zeros */
44
- void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu);
46
+ void grpc_pollset_init(grpc_pollset* pollset, gpr_mu** mu);
45
47
  /* Begin shutting down the pollset, and call closure when done.
46
48
  * pollset's mutex must be held */
47
- void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
48
- grpc_closure *closure);
49
- void grpc_pollset_destroy(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset);
49
+ void grpc_pollset_shutdown(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
50
+ grpc_closure* closure);
51
+ void grpc_pollset_destroy(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset);
50
52
 
51
53
  /* Do some work on a pollset.
52
54
  May involve invoking asynchronous callbacks, or actually polling file
@@ -70,14 +72,18 @@ void grpc_pollset_destroy(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset);
70
72
  May call grpc_closure_list_run on grpc_closure_list, without holding the
71
73
  pollset
72
74
  lock */
73
- grpc_error *grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
74
- grpc_pollset_worker **worker, gpr_timespec now,
75
- gpr_timespec deadline) GRPC_MUST_USE_RESULT;
75
+ grpc_error* grpc_pollset_work(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
76
+ grpc_pollset_worker** worker,
77
+ grpc_millis deadline) GRPC_MUST_USE_RESULT;
76
78
 
77
79
  /* Break one polling thread out of polling work for this pollset.
78
80
  If specific_worker is non-NULL, then kick that worker. */
79
- grpc_error *grpc_pollset_kick(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
80
- grpc_pollset_worker *specific_worker)
81
+ grpc_error* grpc_pollset_kick(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
82
+ grpc_pollset_worker* specific_worker)
81
83
  GRPC_MUST_USE_RESULT;
82
84
 
85
+ #ifdef __cplusplus
86
+ }
87
+ #endif
88
+
83
89
  #endif /* GRPC_CORE_LIB_IOMGR_POLLSET_H */
@@ -21,6 +21,10 @@
21
21
 
22
22
  #include "src/core/lib/iomgr/pollset.h"
23
23
 
24
+ #ifdef __cplusplus
25
+ extern "C" {
26
+ #endif
27
+
24
28
  /* A grpc_pollset_set is a set of pollsets that are interested in an
25
29
  action. Adding a pollset to a pollset_set automatically adds any
26
30
  fd's (etc) that have been registered with the set_set to that pollset.
@@ -28,20 +32,24 @@
28
32
 
29
33
  typedef struct grpc_pollset_set grpc_pollset_set;
30
34
 
31
- grpc_pollset_set *grpc_pollset_set_create(void);
32
- void grpc_pollset_set_destroy(grpc_exec_ctx *exec_ctx,
33
- grpc_pollset_set *pollset_set);
34
- void grpc_pollset_set_add_pollset(grpc_exec_ctx *exec_ctx,
35
- grpc_pollset_set *pollset_set,
36
- grpc_pollset *pollset);
37
- void grpc_pollset_set_del_pollset(grpc_exec_ctx *exec_ctx,
38
- grpc_pollset_set *pollset_set,
39
- grpc_pollset *pollset);
40
- void grpc_pollset_set_add_pollset_set(grpc_exec_ctx *exec_ctx,
41
- grpc_pollset_set *bag,
42
- grpc_pollset_set *item);
43
- void grpc_pollset_set_del_pollset_set(grpc_exec_ctx *exec_ctx,
44
- grpc_pollset_set *bag,
45
- grpc_pollset_set *item);
35
+ grpc_pollset_set* grpc_pollset_set_create(void);
36
+ void grpc_pollset_set_destroy(grpc_exec_ctx* exec_ctx,
37
+ grpc_pollset_set* pollset_set);
38
+ void grpc_pollset_set_add_pollset(grpc_exec_ctx* exec_ctx,
39
+ grpc_pollset_set* pollset_set,
40
+ grpc_pollset* pollset);
41
+ void grpc_pollset_set_del_pollset(grpc_exec_ctx* exec_ctx,
42
+ grpc_pollset_set* pollset_set,
43
+ grpc_pollset* pollset);
44
+ void grpc_pollset_set_add_pollset_set(grpc_exec_ctx* exec_ctx,
45
+ grpc_pollset_set* bag,
46
+ grpc_pollset_set* item);
47
+ void grpc_pollset_set_del_pollset_set(grpc_exec_ctx* exec_ctx,
48
+ grpc_pollset_set* bag,
49
+ grpc_pollset_set* item);
50
+
51
+ #ifdef __cplusplus
52
+ }
53
+ #endif
46
54
 
47
55
  #endif /* GRPC_CORE_LIB_IOMGR_POLLSET_SET_H */
@@ -34,13 +34,10 @@
34
34
 
35
35
  #include "src/core/lib/debug/trace.h"
36
36
 
37
- #ifndef NDEBUG
38
- grpc_tracer_flag grpc_trace_fd_refcount =
39
- GRPC_TRACER_INITIALIZER(false, "fd_refcount");
40
- #endif
37
+ grpc_core::DebugOnlyTraceFlag grpc_trace_fd_refcount(false, "fd_refcount");
41
38
 
42
39
  struct grpc_pollset {
43
- uv_timer_t timer;
40
+ uv_timer_t* timer;
44
41
  int shutting_down;
45
42
  };
46
43
 
@@ -55,17 +52,17 @@ gpr_mu grpc_polling_mu;
55
52
  immediately in the next loop iteration.
56
53
  Note: In the future, if there is a bug that involves missing wakeups in the
57
54
  future, try adding a uv_async_t to kick the loop differently */
58
- uv_timer_t *dummy_uv_handle;
55
+ uv_timer_t* dummy_uv_handle;
59
56
 
60
57
  size_t grpc_pollset_size() { return sizeof(grpc_pollset); }
61
58
 
62
- void dummy_timer_cb(uv_timer_t *handle) {}
59
+ void dummy_timer_cb(uv_timer_t* handle) {}
63
60
 
64
- void dummy_handle_close_cb(uv_handle_t *handle) { gpr_free(handle); }
61
+ void dummy_handle_close_cb(uv_handle_t* handle) { gpr_free(handle); }
65
62
 
66
63
  void grpc_pollset_global_init(void) {
67
64
  gpr_mu_init(&grpc_polling_mu);
68
- dummy_uv_handle = gpr_malloc(sizeof(uv_timer_t));
65
+ dummy_uv_handle = (uv_timer_t*)gpr_malloc(sizeof(uv_timer_t));
69
66
  uv_timer_init(uv_default_loop(), dummy_uv_handle);
70
67
  grpc_pollset_work_run_loop = 1;
71
68
  }
@@ -73,22 +70,26 @@ void grpc_pollset_global_init(void) {
73
70
  void grpc_pollset_global_shutdown(void) {
74
71
  GRPC_UV_ASSERT_SAME_THREAD();
75
72
  gpr_mu_destroy(&grpc_polling_mu);
76
- uv_close((uv_handle_t *)dummy_uv_handle, dummy_handle_close_cb);
73
+ uv_close((uv_handle_t*)dummy_uv_handle, dummy_handle_close_cb);
77
74
  }
78
75
 
79
- static void timer_run_cb(uv_timer_t *timer) {}
76
+ static void timer_run_cb(uv_timer_t* timer) {}
80
77
 
81
- static void timer_close_cb(uv_handle_t *handle) { handle->data = (void *)1; }
78
+ static void timer_close_cb(uv_handle_t* handle) {
79
+ handle->data = (void*)1;
80
+ gpr_free(handle);
81
+ }
82
82
 
83
- void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu) {
83
+ void grpc_pollset_init(grpc_pollset* pollset, gpr_mu** mu) {
84
84
  GRPC_UV_ASSERT_SAME_THREAD();
85
85
  *mu = &grpc_polling_mu;
86
- uv_timer_init(uv_default_loop(), &pollset->timer);
86
+ pollset->timer = (uv_timer_t*)gpr_malloc(sizeof(uv_timer_t));
87
+ uv_timer_init(uv_default_loop(), pollset->timer);
87
88
  pollset->shutting_down = 0;
88
89
  }
89
90
 
90
- void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
91
- grpc_closure *closure) {
91
+ void grpc_pollset_shutdown(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
92
+ grpc_closure* closure) {
92
93
  GPR_ASSERT(!pollset->shutting_down);
93
94
  GRPC_UV_ASSERT_SAME_THREAD();
94
95
  pollset->shutting_down = 1;
@@ -102,38 +103,39 @@ void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
102
103
  GRPC_CLOSURE_SCHED(exec_ctx, closure, GRPC_ERROR_NONE);
103
104
  }
104
105
 
105
- void grpc_pollset_destroy(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset) {
106
+ void grpc_pollset_destroy(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset) {
106
107
  GRPC_UV_ASSERT_SAME_THREAD();
107
- uv_close((uv_handle_t *)&pollset->timer, timer_close_cb);
108
+ uv_close((uv_handle_t*)pollset->timer, timer_close_cb);
108
109
  // timer.data is a boolean indicating that the timer has finished closing
109
- pollset->timer.data = (void *)0;
110
+ pollset->timer->data = (void*)0;
110
111
  if (grpc_pollset_work_run_loop) {
111
- while (!pollset->timer.data) {
112
+ while (!pollset->timer->data) {
112
113
  uv_run(uv_default_loop(), UV_RUN_NOWAIT);
113
114
  }
114
115
  }
115
116
  }
116
117
 
117
- grpc_error *grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
118
- grpc_pollset_worker **worker_hdl,
119
- gpr_timespec now, gpr_timespec deadline) {
118
+ grpc_error* grpc_pollset_work(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
119
+ grpc_pollset_worker** worker_hdl,
120
+ grpc_millis deadline) {
120
121
  uint64_t timeout;
121
122
  GRPC_UV_ASSERT_SAME_THREAD();
122
123
  gpr_mu_unlock(&grpc_polling_mu);
123
124
  if (grpc_pollset_work_run_loop) {
124
- if (gpr_time_cmp(deadline, now) >= 0) {
125
- timeout = (uint64_t)gpr_time_to_millis(gpr_time_sub(deadline, now));
125
+ grpc_millis now = grpc_exec_ctx_now(exec_ctx);
126
+ if (deadline >= now) {
127
+ timeout = deadline - now;
126
128
  } else {
127
129
  timeout = 0;
128
130
  }
129
131
  /* We special-case timeout=0 so that we don't bother with the timer when
130
132
  the loop won't block anyway */
131
133
  if (timeout > 0) {
132
- uv_timer_start(&pollset->timer, timer_run_cb, timeout, 0);
134
+ uv_timer_start(pollset->timer, timer_run_cb, timeout, 0);
133
135
  /* Run until there is some I/O activity or the timer triggers. It doesn't
134
136
  matter which happens */
135
137
  uv_run(uv_default_loop(), UV_RUN_ONCE);
136
- uv_timer_stop(&pollset->timer);
138
+ uv_timer_stop(pollset->timer);
137
139
  } else {
138
140
  uv_run(uv_default_loop(), UV_RUN_NOWAIT);
139
141
  }
@@ -145,8 +147,8 @@ grpc_error *grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
145
147
  return GRPC_ERROR_NONE;
146
148
  }
147
149
 
148
- grpc_error *grpc_pollset_kick(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
149
- grpc_pollset_worker *specific_worker) {
150
+ grpc_error* grpc_pollset_kick(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
151
+ grpc_pollset_worker* specific_worker) {
150
152
  GRPC_UV_ASSERT_SAME_THREAD();
151
153
  uv_timer_start(dummy_uv_handle, dummy_timer_cb, 0, 0);
152
154
  return GRPC_ERROR_NONE;
@@ -19,9 +19,17 @@
19
19
  #ifndef GRPC_CORE_LIB_IOMGR_POLLSET_UV_H
20
20
  #define GRPC_CORE_LIB_IOMGR_POLLSET_UV_H
21
21
 
22
+ #ifdef __cplusplus
23
+ extern "C" {
24
+ #endif
25
+
22
26
  extern int grpc_pollset_work_run_loop;
23
27
 
24
28
  void grpc_pollset_global_init(void);
25
29
  void grpc_pollset_global_shutdown(void);
26
30
 
31
+ #ifdef __cplusplus
32
+ }
33
+ #endif
34
+
27
35
  #endif /* GRPC_CORE_LIB_IOMGR_POLLSET_UV_H */
@@ -28,15 +28,12 @@
28
28
  #include "src/core/lib/iomgr/pollset.h"
29
29
  #include "src/core/lib/iomgr/pollset_windows.h"
30
30
 
31
- #define GRPC_POLLSET_KICK_BROADCAST ((grpc_pollset_worker *)1)
31
+ #define GRPC_POLLSET_KICK_BROADCAST ((grpc_pollset_worker*)1)
32
32
 
33
- #ifndef NDEBUG
34
- grpc_tracer_flag grpc_trace_fd_refcount =
35
- GRPC_TRACER_INITIALIZER(false, "fd_refcount");
36
- #endif
33
+ grpc_core::DebugOnlyTraceFlag grpc_trace_fd_refcount(false, "fd_refcount");
37
34
 
38
35
  gpr_mu grpc_polling_mu;
39
- static grpc_pollset_worker *g_active_poller;
36
+ static grpc_pollset_worker* g_active_poller;
40
37
  static grpc_pollset_worker g_global_root_worker;
41
38
 
42
39
  void grpc_pollset_global_init(void) {
@@ -49,22 +46,22 @@ void grpc_pollset_global_init(void) {
49
46
 
50
47
  void grpc_pollset_global_shutdown(void) { gpr_mu_destroy(&grpc_polling_mu); }
51
48
 
52
- static void remove_worker(grpc_pollset_worker *worker,
49
+ static void remove_worker(grpc_pollset_worker* worker,
53
50
  grpc_pollset_worker_link_type type) {
54
51
  worker->links[type].prev->links[type].next = worker->links[type].next;
55
52
  worker->links[type].next->links[type].prev = worker->links[type].prev;
56
53
  worker->links[type].next = worker->links[type].prev = worker;
57
54
  }
58
55
 
59
- static int has_workers(grpc_pollset_worker *root,
56
+ static int has_workers(grpc_pollset_worker* root,
60
57
  grpc_pollset_worker_link_type type) {
61
58
  return root->links[type].next != root;
62
59
  }
63
60
 
64
- static grpc_pollset_worker *pop_front_worker(
65
- grpc_pollset_worker *root, grpc_pollset_worker_link_type type) {
61
+ static grpc_pollset_worker* pop_front_worker(
62
+ grpc_pollset_worker* root, grpc_pollset_worker_link_type type) {
66
63
  if (has_workers(root, type)) {
67
- grpc_pollset_worker *w = root->links[type].next;
64
+ grpc_pollset_worker* w = root->links[type].next;
68
65
  remove_worker(w, type);
69
66
  return w;
70
67
  } else {
@@ -72,9 +69,9 @@ static grpc_pollset_worker *pop_front_worker(
72
69
  }
73
70
  }
74
71
 
75
- static void push_front_worker(grpc_pollset_worker *root,
72
+ static void push_front_worker(grpc_pollset_worker* root,
76
73
  grpc_pollset_worker_link_type type,
77
- grpc_pollset_worker *worker) {
74
+ grpc_pollset_worker* worker) {
78
75
  worker->links[type].prev = root;
79
76
  worker->links[type].next = worker->links[type].prev->links[type].next;
80
77
  worker->links[type].prev->links[type].next =
@@ -88,15 +85,15 @@ size_t grpc_pollset_size(void) { return sizeof(grpc_pollset); }
88
85
  set of features for the sake of the rest of grpc. But grpc_pollset_work
89
86
  won't actually do any polling, and return as quickly as possible. */
90
87
 
91
- void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu) {
88
+ void grpc_pollset_init(grpc_pollset* pollset, gpr_mu** mu) {
92
89
  *mu = &grpc_polling_mu;
93
90
  pollset->root_worker.links[GRPC_POLLSET_WORKER_LINK_POLLSET].next =
94
91
  pollset->root_worker.links[GRPC_POLLSET_WORKER_LINK_POLLSET].prev =
95
92
  &pollset->root_worker;
96
93
  }
97
94
 
98
- void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
99
- grpc_closure *closure) {
95
+ void grpc_pollset_shutdown(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
96
+ grpc_closure* closure) {
100
97
  pollset->shutting_down = 1;
101
98
  grpc_pollset_kick(exec_ctx, pollset, GRPC_POLLSET_KICK_BROADCAST);
102
99
  if (!pollset->is_iocp_worker) {
@@ -106,11 +103,11 @@ void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
106
103
  }
107
104
  }
108
105
 
109
- void grpc_pollset_destroy(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset) {}
106
+ void grpc_pollset_destroy(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset) {}
110
107
 
111
- grpc_error *grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
112
- grpc_pollset_worker **worker_hdl,
113
- gpr_timespec now, gpr_timespec deadline) {
108
+ grpc_error* grpc_pollset_work(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
109
+ grpc_pollset_worker** worker_hdl,
110
+ grpc_millis deadline) {
114
111
  grpc_pollset_worker worker;
115
112
  if (worker_hdl) *worker_hdl = &worker;
116
113
 
@@ -124,7 +121,7 @@ grpc_error *grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
124
121
  gpr_cv_init(&worker.cv);
125
122
  if (!pollset->kicked_without_pollers && !pollset->shutting_down) {
126
123
  if (g_active_poller == NULL) {
127
- grpc_pollset_worker *next_worker;
124
+ grpc_pollset_worker* next_worker;
128
125
  /* become poller */
129
126
  pollset->is_iocp_worker = 1;
130
127
  g_active_poller = &worker;
@@ -159,9 +156,12 @@ grpc_error *grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
159
156
  &worker);
160
157
  added_worker = 1;
161
158
  while (!worker.kicked) {
162
- if (gpr_cv_wait(&worker.cv, &grpc_polling_mu, deadline)) {
159
+ if (gpr_cv_wait(&worker.cv, &grpc_polling_mu,
160
+ grpc_millis_to_timespec(deadline, GPR_CLOCK_REALTIME))) {
161
+ grpc_exec_ctx_invalidate_now(exec_ctx);
163
162
  break;
164
163
  }
164
+ grpc_exec_ctx_invalidate_now(exec_ctx);
165
165
  }
166
166
  } else {
167
167
  pollset->kicked_without_pollers = 0;
@@ -181,8 +181,8 @@ done:
181
181
  return GRPC_ERROR_NONE;
182
182
  }
183
183
 
184
- grpc_error *grpc_pollset_kick(grpc_exec_ctx *exec_ctx, grpc_pollset *p,
185
- grpc_pollset_worker *specific_worker) {
184
+ grpc_error* grpc_pollset_kick(grpc_exec_ctx* exec_ctx, grpc_pollset* p,
185
+ grpc_pollset_worker* specific_worker) {
186
186
  if (specific_worker != NULL) {
187
187
  if (specific_worker == GRPC_POLLSET_KICK_BROADCAST) {
188
188
  for (specific_worker =