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.
- checksums.yaml +4 -4
- data/Makefile +2106 -2116
- data/include/grpc/census.h +1 -432
- data/include/grpc/compression.h +9 -9
- data/include/grpc/grpc.h +115 -98
- data/include/grpc/grpc_cronet.h +3 -3
- data/include/grpc/grpc_posix.h +4 -4
- data/include/grpc/grpc_security.h +160 -88
- data/include/grpc/grpc_security_constants.h +7 -0
- data/include/grpc/impl/codegen/atm.h +9 -1
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +13 -4
- data/include/grpc/impl/codegen/atm_gcc_sync.h +6 -5
- data/include/grpc/impl/codegen/atm_windows.h +23 -22
- data/include/grpc/impl/codegen/byte_buffer.h +14 -14
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -2
- data/include/grpc/impl/codegen/connectivity_state.h +0 -2
- data/include/grpc/impl/codegen/grpc_types.h +32 -28
- data/include/grpc/impl/codegen/port_platform.h +48 -0
- data/include/grpc/impl/codegen/slice.h +10 -10
- data/include/grpc/impl/codegen/sync_generic.h +9 -3
- data/include/grpc/slice.h +16 -17
- data/include/grpc/slice_buffer.h +22 -22
- data/include/grpc/support/alloc.h +11 -11
- data/include/grpc/support/avl.h +28 -20
- data/include/grpc/support/cmdline.h +13 -13
- data/include/grpc/support/histogram.h +17 -17
- data/include/grpc/support/host_port.h +2 -2
- data/include/grpc/support/log.h +9 -9
- data/include/grpc/support/log_windows.h +1 -1
- data/include/grpc/support/string_util.h +2 -2
- data/include/grpc/support/subprocess.h +5 -5
- data/include/grpc/support/sync.h +43 -27
- data/include/grpc/support/thd.h +6 -6
- data/include/grpc/support/tls_gcc.h +1 -1
- data/include/grpc/support/tls_pthread.h +1 -1
- data/src/core/ext/census/{grpc_context.c → grpc_context.cc} +5 -8
- data/src/core/ext/filters/client_channel/backup_poller.cc +165 -0
- data/src/core/ext/{census/grpc_filter.h → filters/client_channel/backup_poller.h} +12 -7
- data/src/core/ext/filters/client_channel/{channel_connectivity.c → channel_connectivity.cc} +45 -42
- data/src/core/ext/filters/client_channel/{client_channel.c → client_channel.cc} +452 -417
- data/src/core/ext/filters/client_channel/client_channel.h +16 -8
- data/src/core/ext/filters/client_channel/{client_channel_factory.c → client_channel_factory.cc} +0 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.h +29 -21
- data/src/core/ext/filters/client_channel/{client_channel_plugin.c → client_channel_plugin.cc} +15 -19
- data/src/core/ext/filters/client_channel/{connector.c → connector.cc} +0 -0
- data/src/core/ext/filters/client_channel/connector.h +29 -21
- data/src/core/ext/filters/client_channel/{http_connect_handshaker.c → http_connect_handshaker.cc} +10 -10
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +8 -0
- data/src/core/ext/filters/client_channel/{http_proxy.c → http_proxy.cc} +14 -14
- data/src/core/ext/filters/client_channel/http_proxy.h +8 -0
- data/src/core/ext/filters/client_channel/{lb_policy.c → lb_policy.cc} +47 -48
- data/src/core/ext/filters/client_channel/lb_policy.h +76 -70
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{client_load_reporting_filter.c → client_load_reporting_filter.cc} +28 -29
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb.c → grpclb.cc} +554 -563
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +17 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_channel_secure.c → grpclb_channel_secure.cc} +17 -17
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_client_stats.c → grpclb_client_stats.cc} +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{load_balancer_api.c → load_balancer_api.cc} +64 -67
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +20 -21
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +599 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +695 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +270 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +153 -0
- data/src/core/ext/filters/client_channel/{lb_policy_factory.c → lb_policy_factory.cc} +10 -10
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +48 -40
- data/src/core/ext/filters/client_channel/{lb_policy_registry.c → lb_policy_registry.cc} +9 -9
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +11 -3
- data/src/core/ext/filters/client_channel/{parse_address.c → parse_address.cc} +24 -24
- data/src/core/ext/filters/client_channel/parse_address.h +14 -6
- data/src/core/ext/filters/client_channel/{proxy_mapper.c → proxy_mapper.cc} +0 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.h +8 -0
- data/src/core/ext/filters/client_channel/{proxy_mapper_registry.c → proxy_mapper_registry.cc} +0 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -0
- data/src/core/ext/filters/client_channel/{resolver.c → resolver.cc} +21 -23
- data/src/core/ext/filters/client_channel/resolver.h +33 -27
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{dns_resolver_ares.c → dns_resolver_ares.cc} +133 -133
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +18 -9
- 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
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_wrapper.c → grpc_ares_wrapper.cc} +118 -115
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +23 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +60 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/{dns_resolver.c → dns_resolver.cc} +100 -94
- data/src/core/ext/filters/client_channel/resolver/fake/{fake_resolver.c → fake_resolver.cc} +14 -14
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +9 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/{sockaddr_resolver.c → sockaddr_resolver.cc} +60 -60
- data/src/core/ext/filters/client_channel/{resolver_factory.c → resolver_factory.cc} +2 -2
- data/src/core/ext/filters/client_channel/resolver_factory.h +27 -19
- data/src/core/ext/filters/client_channel/{resolver_registry.c → resolver_registry.cc} +35 -35
- data/src/core/ext/filters/client_channel/resolver_registry.h +18 -10
- data/src/core/ext/filters/client_channel/{retry_throttle.c → retry_throttle.cc} +10 -10
- data/src/core/ext/filters/client_channel/retry_throttle.h +8 -0
- data/src/core/ext/filters/client_channel/{subchannel.c → subchannel.cc} +210 -213
- data/src/core/ext/filters/client_channel/subchannel.h +68 -60
- data/src/core/ext/filters/client_channel/{subchannel_index.c → subchannel_index.cc} +52 -52
- data/src/core/ext/filters/client_channel/subchannel_index.h +22 -14
- data/src/core/ext/filters/client_channel/{uri_parser.c → uri_parser.cc} +29 -27
- data/src/core/ext/filters/client_channel/uri_parser.h +18 -10
- data/src/core/ext/filters/deadline/{deadline_filter.c → deadline_filter.cc} +12 -15
- data/src/core/ext/filters/deadline/deadline_filter.h +11 -2
- data/src/core/ext/filters/http/client/{http_client_filter.c → http_client_filter.cc} +83 -83
- data/src/core/ext/filters/http/client/http_client_filter.h +8 -0
- data/src/core/ext/filters/http/{http_filters_plugin.c → http_filters_plugin.cc} +20 -21
- data/src/core/ext/filters/http/message_compress/{message_compress_filter.c → message_compress_filter.cc} +84 -83
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +9 -1
- data/src/core/ext/filters/http/server/{http_server_filter.c → http_server_filter.cc} +80 -78
- data/src/core/ext/filters/http/server/http_server_filter.h +8 -0
- data/src/core/ext/filters/load_reporting/{server_load_reporting_filter.c → server_load_reporting_filter.cc} +29 -29
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +9 -1
- data/src/core/ext/filters/load_reporting/{server_load_reporting_plugin.c → server_load_reporting_plugin.cc} +11 -11
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +13 -5
- data/src/core/ext/filters/max_age/{max_age_filter.c → max_age_filter.cc} +46 -56
- data/src/core/ext/filters/max_age/max_age_filter.h +8 -0
- data/src/core/ext/filters/message_size/{message_size_filter.c → message_size_filter.cc} +62 -40
- data/src/core/ext/filters/message_size/message_size_filter.h +8 -0
- data/src/core/ext/filters/workarounds/{workaround_cronet_compression_filter.c → workaround_cronet_compression_filter.cc} +11 -11
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +8 -0
- data/src/core/ext/filters/workarounds/{workaround_utils.c → workaround_utils.cc} +7 -7
- data/src/core/ext/filters/workarounds/workaround_utils.h +9 -1
- data/src/core/ext/transport/chttp2/alpn/{alpn.c → alpn.cc} +3 -3
- data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -2
- data/src/core/ext/transport/chttp2/client/{chttp2_connector.c → chttp2_connector.cc} +49 -45
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +8 -0
- data/src/core/ext/transport/chttp2/client/insecure/{channel_create.c → channel_create.cc} +28 -27
- data/src/core/ext/transport/chttp2/client/insecure/{channel_create_posix.c → channel_create_posix.cc} +14 -13
- data/src/core/ext/transport/chttp2/client/secure/{secure_channel_create.c → secure_channel_create.cc} +68 -66
- data/src/core/ext/transport/chttp2/server/{chttp2_server.c → chttp2_server.cc} +76 -77
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -3
- data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2.c → server_chttp2.cc} +3 -3
- data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2_posix.c → server_chttp2_posix.cc} +13 -12
- data/src/core/ext/transport/chttp2/server/secure/{server_secure_chttp2.c → server_secure_chttp2.cc} +12 -10
- data/src/core/ext/transport/chttp2/transport/{bin_decoder.c → bin_decoder.cc} +7 -7
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +15 -7
- data/src/core/ext/transport/chttp2/transport/{bin_encoder.c → bin_encoder.cc} +11 -11
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{chttp2_plugin.c → chttp2_plugin.cc} +2 -9
- data/src/core/ext/transport/chttp2/transport/{chttp2_transport.c → chttp2_transport.cc} +778 -778
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -10
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +385 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +337 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{frame_data.c → frame_data.cc} +34 -34
- data/src/core/ext/transport/chttp2/transport/frame_data.h +25 -17
- data/src/core/ext/transport/chttp2/transport/{frame_goaway.c → frame_goaway.cc} +18 -18
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +18 -10
- data/src/core/ext/transport/chttp2/transport/{frame_ping.c → frame_ping.cc} +18 -19
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +12 -4
- data/src/core/ext/transport/chttp2/transport/{frame_rst_stream.c → frame_rst_stream.cc} +16 -16
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +16 -8
- data/src/core/ext/transport/chttp2/transport/{frame_settings.c → frame_settings.cc} +23 -24
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +17 -9
- data/src/core/ext/transport/chttp2/transport/{frame_window_update.c → frame_window_update.cc} +22 -24
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +14 -6
- data/src/core/ext/transport/chttp2/transport/{hpack_encoder.c → hpack_encoder.cc} +206 -161
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +23 -13
- data/src/core/ext/transport/chttp2/transport/{hpack_parser.c → hpack_parser.cc} +340 -334
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +30 -22
- data/src/core/ext/transport/chttp2/transport/{hpack_table.c → hpack_table.cc} +25 -25
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +19 -11
- data/src/core/ext/transport/chttp2/transport/{http2_settings.c → http2_settings.cc} +1 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -2
- data/src/core/ext/transport/chttp2/transport/{huffsyms.c → huffsyms.cc} +0 -0
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{incoming_metadata.c → incoming_metadata.cc} +14 -13
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +18 -10
- data/src/core/ext/transport/chttp2/transport/internal.h +214 -340
- data/src/core/ext/transport/chttp2/transport/{parsing.c → parsing.cc} +152 -141
- data/src/core/ext/transport/chttp2/transport/{stream_lists.c → stream_lists.cc} +53 -53
- data/src/core/ext/transport/chttp2/transport/{stream_map.c → stream_map.cc} +35 -34
- data/src/core/ext/transport/chttp2/transport/stream_map.h +22 -14
- data/src/core/ext/transport/chttp2/transport/{varint.c → varint.cc} +0 -0
- data/src/core/ext/transport/chttp2/transport/varint.h +8 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +636 -0
- data/src/core/ext/transport/inproc/{inproc_plugin.c → inproc_plugin.cc} +5 -6
- data/src/core/ext/transport/inproc/{inproc_transport.c → inproc_transport.cc} +479 -544
- data/src/core/ext/transport/inproc/inproc_transport.h +4 -4
- data/src/core/lib/backoff/backoff.cc +80 -0
- data/src/core/lib/backoff/backoff.h +83 -0
- data/src/core/lib/channel/{channel_args.c → channel_args.cc} +92 -92
- data/src/core/lib/channel/channel_args.h +45 -37
- data/src/core/lib/channel/{channel_stack.c → channel_stack.cc} +67 -68
- data/src/core/lib/channel/channel_stack.h +76 -75
- data/src/core/lib/channel/{channel_stack_builder.c → channel_stack_builder.cc} +91 -91
- data/src/core/lib/channel/channel_stack_builder.h +45 -45
- data/src/core/lib/channel/{connected_channel.c → connected_channel.cc} +70 -70
- data/src/core/lib/channel/connected_channel.h +12 -4
- data/src/core/lib/channel/context.h +2 -2
- data/src/core/lib/channel/{handshaker.c → handshaker.cc} +7 -9
- data/src/core/lib/channel/handshaker.h +9 -1
- data/src/core/lib/channel/{handshaker_factory.c → handshaker_factory.cc} +7 -7
- data/src/core/lib/channel/handshaker_factory.h +18 -10
- data/src/core/lib/channel/{handshaker_registry.c → handshaker_registry.cc} +0 -0
- data/src/core/lib/channel/handshaker_registry.h +8 -0
- data/src/core/lib/compression/algorithm_metadata.h +8 -0
- data/src/core/lib/compression/{compression.c → compression.cc} +9 -9
- data/src/core/lib/compression/{message_compress.c → message_compress.cc} +0 -0
- data/src/core/lib/compression/message_compress.h +8 -0
- data/src/core/lib/compression/{stream_compression.c → stream_compression.cc} +12 -12
- data/src/core/lib/compression/stream_compression.h +27 -19
- data/src/core/lib/compression/{stream_compression_gzip.c → stream_compression_gzip.cc} +35 -36
- data/src/core/lib/compression/stream_compression_gzip.h +8 -0
- data/src/core/lib/compression/{stream_compression_identity.c → stream_compression_identity.cc} +19 -20
- data/src/core/lib/compression/stream_compression_identity.h +8 -0
- data/src/core/lib/debug/{stats.c → stats.cc} +19 -19
- data/src/core/lib/debug/stats.h +17 -9
- data/src/core/lib/debug/{stats_data.c → stats_data.cc} +45 -22
- data/src/core/lib/debug/stats_data.h +58 -19
- data/src/core/lib/debug/trace.cc +142 -0
- data/src/core/lib/debug/trace.h +74 -14
- data/src/core/lib/http/{format_request.c → format_request.cc} +10 -10
- data/src/core/lib/http/format_request.h +12 -4
- data/src/core/lib/http/{httpcli.c → httpcli.cc} +80 -80
- data/src/core/lib/http/httpcli.h +41 -33
- data/src/core/lib/http/{httpcli_security_connector.c → httpcli_security_connector.cc} +69 -55
- data/src/core/lib/http/{parser.c → parser.cc} +42 -42
- data/src/core/lib/http/parser.h +28 -20
- data/src/core/lib/{support → iomgr}/block_annotate.h +17 -8
- data/src/core/lib/iomgr/{call_combiner.c → call_combiner.cc} +29 -17
- data/src/core/lib/iomgr/call_combiner.h +9 -1
- data/src/core/lib/iomgr/closure.h +220 -62
- data/src/core/lib/iomgr/{combiner.c → combiner.cc} +63 -62
- data/src/core/lib/iomgr/combiner.h +16 -8
- data/src/core/lib/iomgr/{endpoint.c → endpoint.cc} +6 -0
- data/src/core/lib/iomgr/endpoint.h +47 -32
- data/src/core/lib/iomgr/endpoint_pair.h +12 -4
- data/src/core/lib/iomgr/{endpoint_pair_posix.c → endpoint_pair_posix.cc} +3 -3
- data/src/core/lib/iomgr/{endpoint_pair_uv.c → endpoint_pair_uv.cc} +2 -2
- data/src/core/lib/iomgr/{endpoint_pair_windows.c → endpoint_pair_windows.cc} +6 -6
- data/src/core/lib/iomgr/{error.c → error.cc} +125 -124
- data/src/core/lib/iomgr/error.h +32 -27
- data/src/core/lib/iomgr/error_internal.h +11 -2
- data/src/core/lib/iomgr/{ev_epoll1_linux.c → ev_epoll1_linux.cc} +214 -215
- data/src/core/lib/iomgr/ev_epoll1_linux.h +9 -1
- data/src/core/lib/iomgr/ev_epollex_linux.cc +1488 -0
- data/src/core/lib/iomgr/ev_epollex_linux.h +9 -1
- data/src/core/lib/iomgr/{ev_epollsig_linux.c → ev_epollsig_linux.cc} +304 -305
- data/src/core/lib/iomgr/ev_epollsig_linux.h +12 -4
- data/src/core/lib/iomgr/{ev_poll_posix.c → ev_poll_posix.cc} +272 -283
- data/src/core/lib/iomgr/ev_poll_posix.h +10 -2
- data/src/core/lib/iomgr/ev_posix.cc +288 -0
- data/src/core/lib/iomgr/ev_posix.h +75 -67
- data/src/core/lib/iomgr/{ev_windows.c → ev_windows.cc} +2 -2
- data/src/core/lib/iomgr/exec_ctx.cc +177 -0
- data/src/core/lib/iomgr/exec_ctx.h +35 -13
- data/src/core/lib/iomgr/{executor.c → executor.cc} +34 -35
- data/src/core/lib/iomgr/executor.h +12 -4
- data/src/core/lib/iomgr/{fork_posix.c → fork_posix.cc} +0 -0
- data/src/core/lib/iomgr/{fork_windows.c → fork_windows.cc} +0 -0
- data/src/core/lib/iomgr/gethostname.h +9 -1
- data/src/core/lib/iomgr/{gethostname_fallback.c → gethostname_fallback.cc} +2 -1
- data/src/core/lib/iomgr/{gethostname_host_name_max.c → gethostname_host_name_max.cc} +4 -3
- data/src/core/lib/iomgr/{gethostname_sysconf.c → gethostname_sysconf.cc} +3 -2
- data/src/core/lib/iomgr/{iocp_windows.c → iocp_windows.cc} +23 -25
- data/src/core/lib/iomgr/iocp_windows.h +17 -3
- data/src/core/lib/iomgr/{iomgr.c → iomgr.cc} +25 -19
- data/src/core/lib/iomgr/iomgr.h +11 -3
- data/src/core/lib/iomgr/iomgr_internal.h +13 -5
- data/src/core/lib/iomgr/{iomgr_posix.c → iomgr_posix.cc} +0 -1
- data/src/core/lib/iomgr/{iomgr_uv.c → iomgr_uv.cc} +1 -1
- data/src/core/lib/iomgr/iomgr_uv.h +8 -0
- data/src/core/lib/iomgr/{iomgr_windows.c → iomgr_windows.cc} +0 -0
- data/src/core/lib/iomgr/{is_epollexclusive_available.c → is_epollexclusive_available.cc} +1 -1
- data/src/core/lib/iomgr/is_epollexclusive_available.h +8 -0
- data/src/core/lib/iomgr/{load_file.c → load_file.cc} +12 -12
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/{lockfree_event.c → lockfree_event.cc} +76 -68
- data/src/core/lib/iomgr/lockfree_event.h +30 -11
- data/src/core/lib/iomgr/{network_status_tracker.c → network_status_tracker.cc} +3 -2
- data/src/core/lib/iomgr/network_status_tracker.h +2 -2
- data/src/core/lib/iomgr/{polling_entity.c → polling_entity.cc} +18 -18
- data/src/core/lib/iomgr/polling_entity.h +21 -13
- data/src/core/lib/iomgr/pollset.h +17 -11
- data/src/core/lib/iomgr/pollset_set.h +23 -15
- data/src/core/lib/iomgr/{pollset_set_uv.c → pollset_set_uv.cc} +0 -0
- data/src/core/lib/iomgr/{pollset_set_windows.c → pollset_set_windows.cc} +0 -0
- data/src/core/lib/iomgr/{pollset_uv.c → pollset_uv.cc} +31 -29
- data/src/core/lib/iomgr/pollset_uv.h +8 -0
- data/src/core/lib/iomgr/{pollset_windows.c → pollset_windows.cc} +24 -24
- data/src/core/lib/iomgr/pollset_windows.h +17 -4
- data/src/core/lib/iomgr/port.h +10 -0
- data/src/core/lib/iomgr/resolve_address.h +18 -10
- data/src/core/lib/iomgr/{resolve_address_posix.c → resolve_address_posix.cc} +40 -40
- data/src/core/lib/iomgr/{resolve_address_uv.c → resolve_address_uv.cc} +61 -56
- data/src/core/lib/iomgr/{resolve_address_windows.c → resolve_address_windows.cc} +36 -34
- data/src/core/lib/iomgr/{resource_quota.c → resource_quota.cc} +209 -180
- data/src/core/lib/iomgr/resource_quota.h +45 -37
- data/src/core/lib/iomgr/{sockaddr_utils.c → sockaddr_utils.cc} +61 -61
- data/src/core/lib/iomgr/sockaddr_utils.h +23 -15
- data/src/core/lib/iomgr/sockaddr_windows.h +6 -0
- data/src/core/lib/iomgr/{socket_factory_posix.c → socket_factory_posix.cc} +20 -20
- data/src/core/lib/iomgr/socket_factory_posix.h +15 -15
- data/src/core/lib/iomgr/{socket_mutator.c → socket_mutator.cc} +18 -18
- data/src/core/lib/iomgr/socket_mutator.h +11 -11
- data/src/core/lib/iomgr/socket_utils.h +9 -1
- data/src/core/lib/iomgr/{socket_utils_common_posix.c → socket_utils_common_posix.cc} +28 -28
- data/src/core/lib/iomgr/{socket_utils_linux.c → socket_utils_linux.cc} +3 -3
- data/src/core/lib/iomgr/{socket_utils_posix.c → socket_utils_posix.cc} +3 -3
- data/src/core/lib/iomgr/socket_utils_posix.h +26 -18
- data/src/core/lib/iomgr/{socket_utils_uv.c → socket_utils_uv.cc} +1 -1
- data/src/core/lib/iomgr/{socket_utils_windows.c → socket_utils_windows.cc} +2 -2
- data/src/core/lib/iomgr/{socket_windows.c → socket_windows.cc} +18 -18
- data/src/core/lib/iomgr/socket_windows.h +26 -13
- data/src/core/lib/iomgr/tcp_client.h +14 -6
- data/src/core/lib/iomgr/{tcp_client_posix.c → tcp_client_posix.cc} +69 -70
- data/src/core/lib/iomgr/tcp_client_posix.h +11 -3
- data/src/core/lib/iomgr/{tcp_client_uv.c → tcp_client_uv.cc} +47 -48
- data/src/core/lib/iomgr/{tcp_client_windows.c → tcp_client_windows.cc} +46 -44
- data/src/core/lib/iomgr/{tcp_posix.c → tcp_posix.cc} +198 -175
- data/src/core/lib/iomgr/tcp_posix.h +15 -7
- data/src/core/lib/iomgr/tcp_server.h +31 -23
- data/src/core/lib/iomgr/{tcp_server_posix.c → tcp_server_posix.cc} +78 -77
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +27 -19
- data/src/core/lib/iomgr/{tcp_server_utils_posix_common.c → tcp_server_utils_posix_common.cc} +27 -27
- data/src/core/lib/iomgr/{tcp_server_utils_posix_ifaddrs.c → tcp_server_utils_posix_ifaddrs.cc} +25 -25
- data/src/core/lib/iomgr/{tcp_server_utils_posix_noifaddrs.c → tcp_server_utils_posix_noifaddrs.cc} +2 -2
- data/src/core/lib/iomgr/{tcp_server_uv.c → tcp_server_uv.cc} +133 -105
- data/src/core/lib/iomgr/{tcp_server_windows.c → tcp_server_windows.cc} +81 -77
- data/src/core/lib/iomgr/tcp_uv.cc +420 -0
- data/src/core/lib/iomgr/tcp_uv.h +18 -4
- data/src/core/lib/iomgr/{tcp_windows.c → tcp_windows.cc} +90 -79
- data/src/core/lib/iomgr/tcp_windows.h +17 -4
- data/src/core/lib/iomgr/{time_averaged_stats.c → time_averaged_stats.cc} +0 -0
- data/src/core/lib/iomgr/time_averaged_stats.h +8 -0
- data/src/core/lib/iomgr/timer.h +16 -9
- data/src/core/lib/iomgr/{timer_generic.c → timer_generic.cc} +130 -171
- data/src/core/lib/iomgr/timer_generic.h +4 -4
- data/src/core/lib/iomgr/{timer_heap.c → timer_heap.cc} +20 -21
- data/src/core/lib/iomgr/timer_heap.h +16 -8
- data/src/core/lib/iomgr/{timer_manager.c → timer_manager.cc} +54 -52
- data/src/core/lib/iomgr/timer_manager.h +8 -0
- data/src/core/lib/iomgr/{timer_uv.c → timer_uv.cc} +22 -24
- data/src/core/lib/iomgr/timer_uv.h +2 -2
- data/src/core/lib/iomgr/{udp_server.c → udp_server.cc} +75 -75
- data/src/core/lib/iomgr/udp_server.h +25 -17
- data/src/core/lib/iomgr/{unix_sockets_posix.c → unix_sockets_posix.cc} +22 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +14 -6
- data/src/core/lib/iomgr/{unix_sockets_posix_noop.c → unix_sockets_posix_noop.cc} +5 -5
- data/src/core/lib/iomgr/{wakeup_fd_cv.c → wakeup_fd_cv.cc} +2 -2
- data/src/core/lib/iomgr/wakeup_fd_cv.h +10 -0
- data/src/core/lib/iomgr/{wakeup_fd_eventfd.c → wakeup_fd_eventfd.cc} +0 -0
- data/src/core/lib/iomgr/{wakeup_fd_nospecial.c → wakeup_fd_nospecial.cc} +0 -0
- data/src/core/lib/iomgr/{wakeup_fd_pipe.c → wakeup_fd_pipe.cc} +1 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +9 -1
- data/src/core/lib/iomgr/{wakeup_fd_posix.c → wakeup_fd_posix.cc} +6 -7
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -0
- data/src/core/lib/json/{json.c → json.cc} +0 -0
- data/src/core/lib/json/json.h +8 -0
- data/src/core/lib/json/{json_reader.c → json_reader.cc} +18 -18
- data/src/core/lib/json/json_reader.h +26 -18
- data/src/core/lib/json/{json_string.c → json_string.cc} +57 -57
- data/src/core/lib/json/{json_writer.c → json_writer.cc} +20 -20
- data/src/core/lib/json/json_writer.h +23 -15
- data/src/core/lib/profiling/{basic_timers.c → basic_timers.cc} +34 -34
- data/src/core/lib/profiling/{stap_timers.c → stap_timers.cc} +5 -5
- data/src/core/lib/profiling/timers.h +6 -6
- data/src/core/lib/security/context/{security_context.c → security_context.cc} +98 -95
- data/src/core/lib/security/context/security_context.h +27 -29
- data/src/core/lib/security/credentials/composite/{composite_credentials.c → composite_credentials.cc} +79 -73
- data/src/core/lib/security/credentials/composite/composite_credentials.h +17 -9
- data/src/core/lib/security/credentials/{credentials.c → credentials.cc} +97 -92
- data/src/core/lib/security/credentials/credentials.h +83 -75
- data/src/core/lib/security/credentials/{credentials_metadata.c → credentials_metadata.cc} +7 -6
- data/src/core/lib/security/credentials/fake/{fake_credentials.c → fake_credentials.cc} +39 -36
- data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -5
- data/src/core/lib/security/credentials/google_default/{credentials_generic.c → credentials_generic.cc} +5 -5
- data/src/core/lib/security/credentials/google_default/{google_default_credentials.c → google_default_credentials.cc} +55 -55
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -1
- data/src/core/lib/security/credentials/iam/{iam_credentials.c → iam_credentials.cc} +19 -18
- data/src/core/lib/security/credentials/jwt/{json_token.c → json_token.cc} +80 -75
- data/src/core/lib/security/credentials/jwt/json_token.h +23 -15
- data/src/core/lib/security/credentials/jwt/{jwt_credentials.c → jwt_credentials.cc} +45 -41
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
- data/src/core/lib/security/credentials/jwt/{jwt_verifier.c → jwt_verifier.cc} +262 -252
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +38 -30
- data/src/core/lib/security/credentials/oauth2/{oauth2_credentials.c → oauth2_credentials.cc} +138 -141
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +30 -22
- data/src/core/lib/security/credentials/plugin/{plugin_credentials.c → plugin_credentials.cc} +52 -53
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +7 -7
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +344 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +27 -0
- data/src/core/lib/security/transport/auth_filters.h +16 -0
- data/src/core/lib/security/transport/{client_auth_filter.c → client_auth_filter.cc} +127 -115
- data/src/core/lib/security/transport/{lb_targets_info.c → lb_targets_info.cc} +16 -13
- data/src/core/lib/security/transport/lb_targets_info.h +11 -3
- data/src/core/lib/security/transport/{secure_endpoint.c → secure_endpoint.cc} +84 -76
- data/src/core/lib/security/transport/secure_endpoint.h +13 -5
- data/src/core/lib/security/transport/security_connector.cc +1121 -0
- data/src/core/lib/security/transport/security_connector.h +97 -79
- data/src/core/lib/security/transport/{security_handshaker.c → security_handshaker.cc} +139 -132
- data/src/core/lib/security/transport/security_handshaker.h +11 -3
- data/src/core/lib/security/transport/{server_auth_filter.c → server_auth_filter.cc} +68 -68
- data/src/core/lib/security/transport/{tsi_error.c → tsi_error.cc} +1 -1
- data/src/core/lib/security/transport/tsi_error.h +9 -1
- data/src/core/lib/security/util/{json_util.c → json_util.cc} +11 -11
- data/src/core/lib/security/util/json_util.h +12 -4
- data/src/core/lib/slice/{b64.c → b64.cc} +15 -15
- data/src/core/lib/slice/b64.h +12 -4
- data/src/core/lib/slice/{percent_encoding.c → percent_encoding.cc} +15 -15
- data/src/core/lib/slice/percent_encoding.h +11 -3
- data/src/core/lib/slice/{slice.c → slice.cc} +64 -64
- data/src/core/lib/slice/{slice_buffer.c → slice_buffer.cc} +38 -38
- data/src/core/lib/slice/{slice_hash_table.c → slice_hash_table.cc} +7 -7
- data/src/core/lib/slice/slice_hash_table.h +19 -11
- data/src/core/lib/slice/{slice_intern.c → slice_intern.cc} +35 -34
- data/src/core/lib/slice/slice_internal.h +17 -6
- data/src/core/lib/slice/{slice_string_helpers.c → slice_string_helpers.cc} +9 -9
- data/src/core/lib/slice/slice_string_helpers.h +3 -3
- data/src/core/lib/support/abstract.h +29 -0
- data/src/core/lib/support/{alloc.c → alloc.cc} +22 -22
- data/src/core/lib/support/{arena.c → arena.cc} +12 -12
- data/src/core/lib/support/arena.h +11 -3
- data/src/core/lib/support/{atm.c → atm.cc} +1 -1
- data/src/core/lib/support/{avl.c → avl.cc} +71 -70
- data/src/core/lib/support/{cmdline.c → cmdline.cc} +62 -62
- data/src/core/lib/support/{cpu_iphone.c → cpu_iphone.cc} +2 -0
- data/src/core/lib/support/{cpu_linux.c → cpu_linux.cc} +10 -0
- data/src/core/lib/support/{cpu_posix.c → cpu_posix.cc} +27 -4
- data/src/core/lib/support/{cpu_windows.c → cpu_windows.cc} +1 -0
- data/src/core/lib/support/env.h +3 -3
- data/src/core/lib/support/{env_linux.c → env_linux.cc} +11 -11
- data/src/core/lib/support/{env_posix.c → env_posix.cc} +4 -4
- data/src/core/lib/support/{env_windows.c → env_windows.cc} +5 -5
- data/src/core/lib/support/{fork.c → fork.cc} +2 -2
- data/src/core/lib/support/{histogram.c → histogram.cc} +25 -26
- data/src/core/lib/support/{host_port.c → host_port.cc} +16 -16
- data/src/core/lib/support/{log.c → log.cc} +8 -8
- data/src/core/lib/support/{log_android.c → log_android.cc} +7 -7
- data/src/core/lib/support/{log_linux.c → log_linux.cc} +8 -8
- data/src/core/lib/support/{log_posix.c → log_posix.cc} +9 -10
- data/src/core/lib/support/{log_windows.c → log_windows.cc} +7 -7
- data/src/core/lib/support/manual_constructor.h +211 -0
- data/src/core/lib/support/memory.h +41 -0
- data/src/core/lib/support/mpscq.cc +114 -0
- data/src/core/lib/support/mpscq.h +45 -7
- data/src/core/lib/support/{murmur_hash.c → murmur_hash.cc} +9 -12
- data/src/core/lib/support/murmur_hash.h +9 -1
- data/src/core/lib/support/spinlock.h +8 -1
- data/src/core/lib/support/{string.c → string.cc} +56 -55
- data/src/core/lib/support/string.h +21 -21
- data/src/core/lib/support/{string_posix.c → string_posix.cc} +5 -4
- data/src/core/lib/support/{string_util_windows.c → string_util_windows.cc} +9 -6
- data/src/core/lib/support/{string_windows.c → string_windows.cc} +3 -2
- data/src/core/lib/support/string_windows.h +8 -0
- data/src/core/lib/support/{subprocess_posix.c → subprocess_posix.cc} +13 -13
- data/src/core/lib/support/{subprocess_windows.c → subprocess_windows.cc} +9 -9
- data/src/core/lib/support/{sync.c → sync.cc} +22 -22
- data/src/core/lib/support/{sync_posix.c → sync_posix.cc} +6 -2
- data/src/core/lib/support/{sync_windows.c → sync_windows.cc} +14 -14
- data/src/core/lib/support/{thd.c → thd.cc} +0 -0
- data/src/core/lib/support/{thd_posix.c → thd_posix.cc} +10 -10
- data/src/core/lib/support/{thd_windows.c → thd_windows.cc} +10 -10
- data/src/core/lib/support/{time.c → time.cc} +0 -0
- data/src/core/lib/support/{time_posix.c → time_posix.cc} +5 -6
- data/src/core/lib/support/{time_precise.c → time_precise.cc} +6 -4
- data/src/core/lib/support/time_precise.h +9 -1
- data/src/core/lib/support/{time_windows.c → time_windows.cc} +2 -3
- data/src/core/lib/support/{tls_pthread.c → tls_pthread.cc} +2 -2
- data/src/core/lib/support/tmpfile.h +1 -1
- data/src/core/lib/support/{tmpfile_msys.c → tmpfile_msys.cc} +2 -2
- data/src/core/lib/support/{tmpfile_posix.c → tmpfile_posix.cc} +7 -7
- data/src/core/lib/support/{tmpfile_windows.c → tmpfile_windows.cc} +2 -2
- data/src/core/lib/support/{wrap_memcpy.c → wrap_memcpy.cc} +4 -2
- data/src/core/lib/surface/{alarm.c → alarm.cc} +32 -31
- data/src/core/lib/surface/alarm_internal.h +10 -2
- data/src/core/lib/surface/{api_trace.c → api_trace.cc} +1 -1
- data/src/core/lib/surface/api_trace.h +2 -2
- data/src/core/lib/surface/{byte_buffer.c → byte_buffer.cc} +13 -13
- data/src/core/lib/surface/{byte_buffer_reader.c → byte_buffer_reader.cc} +9 -9
- data/src/core/lib/surface/{call.c → call.cc} +379 -372
- data/src/core/lib/surface/call.h +37 -38
- data/src/core/lib/surface/{call_details.c → call_details.cc} +0 -0
- data/src/core/lib/surface/{call_log_batch.c → call_log_batch.cc} +13 -11
- data/src/core/lib/surface/call_test_only.h +5 -5
- data/src/core/lib/surface/{channel.c → channel.cc} +94 -95
- data/src/core/lib/surface/channel.h +29 -21
- data/src/core/lib/surface/{channel_init.c → channel_init.cc} +13 -13
- data/src/core/lib/surface/channel_init.h +6 -6
- data/src/core/lib/surface/{channel_ping.c → channel_ping.cc} +12 -12
- data/src/core/lib/surface/{channel_stack_type.c → channel_stack_type.cc} +1 -1
- data/src/core/lib/surface/channel_stack_type.h +9 -1
- data/src/core/lib/surface/{completion_queue.c → completion_queue.cc} +416 -379
- data/src/core/lib/surface/completion_queue.h +29 -29
- data/src/core/lib/surface/{completion_queue_factory.c → completion_queue_factory.cc} +1 -1
- data/src/core/lib/surface/completion_queue_factory.h +8 -0
- data/src/core/lib/surface/{event_string.c → event_string.cc} +9 -9
- data/src/core/lib/surface/event_string.h +9 -1
- data/src/core/lib/surface/{init.c → init.cc} +16 -39
- data/src/core/lib/surface/init.h +8 -0
- data/src/core/lib/surface/{init_secure.c → init_secure.cc} +12 -25
- data/src/core/lib/surface/lame_client.cc +38 -40
- data/src/core/lib/surface/lame_client.h +8 -0
- data/src/core/lib/surface/{metadata_array.c → metadata_array.cc} +0 -0
- data/src/core/lib/surface/{server.c → server.cc} +340 -404
- data/src/core/lib/surface/server.h +22 -14
- data/src/core/lib/surface/{validate_metadata.c → validate_metadata.cc} +10 -9
- data/src/core/lib/surface/validate_metadata.h +10 -2
- data/src/core/lib/surface/{version.c → version.cc} +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +84 -0
- data/src/core/lib/transport/bdp_estimator.h +67 -42
- data/src/core/lib/transport/{byte_stream.c → byte_stream.cc} +51 -51
- data/src/core/lib/transport/byte_stream.h +41 -33
- data/src/core/lib/transport/{connectivity_state.c → connectivity_state.cc} +36 -40
- data/src/core/lib/transport/connectivity_state.h +29 -21
- data/src/core/lib/transport/{error_utils.c → error_utils.cc} +26 -22
- data/src/core/lib/transport/error_utils.h +18 -6
- data/src/core/lib/transport/{metadata.c → metadata.cc} +92 -88
- data/src/core/lib/transport/metadata.h +22 -20
- data/src/core/lib/transport/{metadata_batch.c → metadata_batch.cc} +78 -79
- data/src/core/lib/transport/metadata_batch.h +46 -45
- data/src/core/lib/transport/pid_controller.cc +48 -0
- data/src/core/lib/transport/pid_controller.h +84 -32
- data/src/core/lib/transport/{service_config.c → service_config.cc} +66 -48
- data/src/core/lib/transport/service_config.h +11 -2
- data/src/core/lib/transport/{static_metadata.c → static_metadata.cc} +2 -2
- data/src/core/lib/transport/static_metadata.h +30 -23
- data/src/core/lib/transport/{status_conversion.c → status_conversion.cc} +4 -3
- data/src/core/lib/transport/status_conversion.h +12 -2
- data/src/core/lib/transport/{timeout_encoding.c → timeout_encoding.cc} +28 -61
- data/src/core/lib/transport/timeout_encoding.h +11 -2
- data/src/core/lib/transport/{transport.c → transport.cc} +79 -79
- data/src/core/lib/transport/transport.h +78 -80
- data/src/core/lib/transport/transport_impl.h +27 -19
- data/src/core/lib/transport/{transport_op_string.c → transport_op_string.cc} +32 -30
- data/src/core/plugin_registry/{grpc_plugin_registry.c → grpc_plugin_registry.cc} +34 -38
- data/src/core/tsi/{fake_transport_security.c → fake_transport_security.cc} +141 -132
- data/src/core/tsi/fake_transport_security.h +5 -5
- data/src/core/tsi/{gts_transport_security.c → gts_transport_security.cc} +4 -4
- data/src/core/tsi/gts_transport_security.h +11 -3
- data/src/core/tsi/{ssl_transport_security.c → ssl_transport_security.cc} +309 -300
- data/src/core/tsi/ssl_transport_security.h +25 -25
- data/src/core/tsi/ssl_types.h +8 -0
- data/src/core/tsi/{transport_security.c → transport_security.cc} +94 -87
- data/src/core/tsi/transport_security.h +55 -55
- data/src/core/tsi/{transport_security_adapter.c → transport_security_adapter.cc} +58 -55
- data/src/core/tsi/transport_security_adapter.h +2 -2
- data/src/core/tsi/{transport_security_grpc.c → transport_security_grpc.cc} +21 -21
- data/src/core/tsi/transport_security_grpc.h +19 -19
- data/src/core/tsi/transport_security_interface.h +41 -41
- data/src/ruby/ext/grpc/extconf.rb +4 -2
- data/src/ruby/ext/grpc/rb_byte_buffer.c +5 -5
- data/src/ruby/ext/grpc/rb_byte_buffer.h +2 -2
- data/src/ruby/ext/grpc/rb_call.c +41 -42
- data/src/ruby/ext/grpc/rb_call.h +6 -6
- data/src/ruby/ext/grpc/rb_call_credentials.c +30 -30
- data/src/ruby/ext/grpc/rb_channel.c +87 -87
- data/src/ruby/ext/grpc/rb_channel_credentials.c +23 -23
- data/src/ruby/ext/grpc/rb_completion_queue.c +11 -11
- data/src/ruby/ext/grpc/rb_completion_queue.h +3 -3
- data/src/ruby/ext/grpc/rb_compression_options.c +20 -20
- data/src/ruby/ext/grpc/rb_event_thread.c +14 -14
- data/src/ruby/ext/grpc/rb_event_thread.h +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +8 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +16 -58
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +242 -306
- data/src/ruby/ext/grpc/rb_server.c +23 -23
- data/src/ruby/ext/grpc/rb_server_credentials.c +13 -13
- data/src/ruby/lib/grpc/generic/rpc_server.rb +25 -12
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/checker.rb +14 -0
- data/src/ruby/spec/pb/health/checker_spec.rb +29 -0
- data/third_party/cares/config_freebsd/ares_config.h +502 -0
- data/third_party/cares/config_openbsd/ares_config.h +502 -0
- metadata +302 -328
- data/src/core/ext/census/aggregation.h +0 -51
- data/src/core/ext/census/base_resources.c +0 -56
- data/src/core/ext/census/base_resources.h +0 -24
- data/src/core/ext/census/census_interface.h +0 -61
- data/src/core/ext/census/census_rpc_stats.h +0 -86
- data/src/core/ext/census/context.c +0 -496
- data/src/core/ext/census/gen/census.pb.c +0 -161
- data/src/core/ext/census/gen/census.pb.h +0 -280
- data/src/core/ext/census/gen/trace_context.pb.c +0 -39
- data/src/core/ext/census/gen/trace_context.pb.h +0 -78
- data/src/core/ext/census/grpc_filter.c +0 -196
- data/src/core/ext/census/grpc_plugin.c +0 -70
- data/src/core/ext/census/initialize.c +0 -51
- data/src/core/ext/census/intrusive_hash_map.c +0 -305
- data/src/core/ext/census/intrusive_hash_map.h +0 -152
- data/src/core/ext/census/intrusive_hash_map_internal.h +0 -48
- data/src/core/ext/census/mlog.c +0 -586
- data/src/core/ext/census/mlog.h +0 -80
- data/src/core/ext/census/operation.c +0 -48
- data/src/core/ext/census/placeholders.c +0 -49
- data/src/core/ext/census/resource.c +0 -303
- data/src/core/ext/census/resource.h +0 -48
- data/src/core/ext/census/rpc_metric_id.h +0 -36
- data/src/core/ext/census/trace_context.c +0 -71
- data/src/core/ext/census/trace_context.h +0 -56
- data/src/core/ext/census/trace_label.h +0 -46
- data/src/core/ext/census/trace_propagation.h +0 -48
- data/src/core/ext/census/trace_status.h +0 -30
- data/src/core/ext/census/trace_string.h +0 -35
- data/src/core/ext/census/tracing.c +0 -55
- data/src/core/ext/census/tracing.h +0 -109
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +0 -714
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +0 -924
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +0 -60
- data/src/core/ext/transport/chttp2/transport/flow_control.c +0 -502
- data/src/core/ext/transport/chttp2/transport/writing.c +0 -534
- data/src/core/lib/debug/trace.c +0 -146
- data/src/core/lib/iomgr/closure.c +0 -219
- data/src/core/lib/iomgr/ev_epollex_linux.c +0 -1461
- data/src/core/lib/iomgr/ev_posix.c +0 -266
- data/src/core/lib/iomgr/exec_ctx.c +0 -113
- data/src/core/lib/iomgr/tcp_uv.c +0 -381
- data/src/core/lib/security/credentials/ssl/ssl_credentials.c +0 -194
- data/src/core/lib/security/transport/security_connector.c +0 -914
- data/src/core/lib/support/backoff.c +0 -72
- data/src/core/lib/support/backoff.h +0 -56
- data/src/core/lib/support/mpscq.c +0 -79
- data/src/core/lib/support/stack_lockfree.c +0 -137
- data/src/core/lib/support/stack_lockfree.h +0 -38
- data/src/core/lib/transport/bdp_estimator.c +0 -110
- data/src/core/lib/transport/pid_controller.c +0 -63
@@ -30,7 +30,7 @@
|
|
30
30
|
/* grow a buffer; requires GRPC_SLICE_BUFFER_INLINE_ELEMENTS > 1 */
|
31
31
|
#define GROW(x) (3 * (x) / 2)
|
32
32
|
|
33
|
-
static void maybe_embiggen(grpc_slice_buffer
|
33
|
+
static void maybe_embiggen(grpc_slice_buffer* sb) {
|
34
34
|
/* How far away from sb->base_slices is sb->slices pointer */
|
35
35
|
size_t slice_offset = (size_t)(sb->slices - sb->base_slices);
|
36
36
|
size_t slice_count = sb->count + slice_offset;
|
@@ -46,10 +46,10 @@ static void maybe_embiggen(grpc_slice_buffer *sb) {
|
|
46
46
|
GPR_ASSERT(sb->capacity > slice_count);
|
47
47
|
if (sb->base_slices == sb->inlined) {
|
48
48
|
sb->base_slices =
|
49
|
-
(grpc_slice
|
49
|
+
(grpc_slice*)gpr_malloc(sb->capacity * sizeof(grpc_slice));
|
50
50
|
memcpy(sb->base_slices, sb->inlined, slice_count * sizeof(grpc_slice));
|
51
51
|
} else {
|
52
|
-
sb->base_slices = (grpc_slice
|
52
|
+
sb->base_slices = (grpc_slice*)gpr_realloc(
|
53
53
|
sb->base_slices, sb->capacity * sizeof(grpc_slice));
|
54
54
|
}
|
55
55
|
|
@@ -58,30 +58,30 @@ static void maybe_embiggen(grpc_slice_buffer *sb) {
|
|
58
58
|
}
|
59
59
|
}
|
60
60
|
|
61
|
-
void grpc_slice_buffer_init(grpc_slice_buffer
|
61
|
+
void grpc_slice_buffer_init(grpc_slice_buffer* sb) {
|
62
62
|
sb->count = 0;
|
63
63
|
sb->length = 0;
|
64
64
|
sb->capacity = GRPC_SLICE_BUFFER_INLINE_ELEMENTS;
|
65
65
|
sb->base_slices = sb->slices = sb->inlined;
|
66
66
|
}
|
67
67
|
|
68
|
-
void grpc_slice_buffer_destroy_internal(grpc_exec_ctx
|
69
|
-
grpc_slice_buffer
|
68
|
+
void grpc_slice_buffer_destroy_internal(grpc_exec_ctx* exec_ctx,
|
69
|
+
grpc_slice_buffer* sb) {
|
70
70
|
grpc_slice_buffer_reset_and_unref_internal(exec_ctx, sb);
|
71
71
|
if (sb->base_slices != sb->inlined) {
|
72
72
|
gpr_free(sb->base_slices);
|
73
73
|
}
|
74
74
|
}
|
75
75
|
|
76
|
-
void grpc_slice_buffer_destroy(grpc_slice_buffer
|
76
|
+
void grpc_slice_buffer_destroy(grpc_slice_buffer* sb) {
|
77
77
|
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
|
78
78
|
grpc_slice_buffer_destroy_internal(&exec_ctx, sb);
|
79
79
|
grpc_exec_ctx_finish(&exec_ctx);
|
80
80
|
}
|
81
81
|
|
82
|
-
uint8_t
|
83
|
-
grpc_slice
|
84
|
-
uint8_t
|
82
|
+
uint8_t* grpc_slice_buffer_tiny_add(grpc_slice_buffer* sb, size_t n) {
|
83
|
+
grpc_slice* back;
|
84
|
+
uint8_t* out;
|
85
85
|
|
86
86
|
sb->length += n;
|
87
87
|
|
@@ -98,12 +98,12 @@ add_new:
|
|
98
98
|
maybe_embiggen(sb);
|
99
99
|
back = &sb->slices[sb->count];
|
100
100
|
sb->count++;
|
101
|
-
back->refcount =
|
101
|
+
back->refcount = nullptr;
|
102
102
|
back->data.inlined.length = (uint8_t)n;
|
103
103
|
return back->data.inlined.bytes;
|
104
104
|
}
|
105
105
|
|
106
|
-
size_t grpc_slice_buffer_add_indexed(grpc_slice_buffer
|
106
|
+
size_t grpc_slice_buffer_add_indexed(grpc_slice_buffer* sb, grpc_slice s) {
|
107
107
|
size_t out = sb->count;
|
108
108
|
maybe_embiggen(sb);
|
109
109
|
sb->slices[out] = s;
|
@@ -112,7 +112,7 @@ size_t grpc_slice_buffer_add_indexed(grpc_slice_buffer *sb, grpc_slice s) {
|
|
112
112
|
return out;
|
113
113
|
}
|
114
114
|
|
115
|
-
void grpc_slice_buffer_add(grpc_slice_buffer
|
115
|
+
void grpc_slice_buffer_add(grpc_slice_buffer* sb, grpc_slice s) {
|
116
116
|
size_t n = sb->count;
|
117
117
|
/* if both the last slice in the slice buffer and the slice being added
|
118
118
|
are inlined (that is, that they carry their data inside the slice data
|
@@ -120,7 +120,7 @@ void grpc_slice_buffer_add(grpc_slice_buffer *sb, grpc_slice s) {
|
|
120
120
|
into the back slice, preventing many small slices being passed into
|
121
121
|
writes */
|
122
122
|
if (!s.refcount && n) {
|
123
|
-
grpc_slice
|
123
|
+
grpc_slice* back = &sb->slices[n - 1];
|
124
124
|
if (!back->refcount &&
|
125
125
|
back->data.inlined.length < GRPC_SLICE_INLINED_SIZE) {
|
126
126
|
if (s.data.inlined.length + back->data.inlined.length <=
|
@@ -137,7 +137,7 @@ void grpc_slice_buffer_add(grpc_slice_buffer *sb, grpc_slice s) {
|
|
137
137
|
maybe_embiggen(sb);
|
138
138
|
back = &sb->slices[n];
|
139
139
|
sb->count = n + 1;
|
140
|
-
back->refcount =
|
140
|
+
back->refcount = nullptr;
|
141
141
|
back->data.inlined.length = (uint8_t)(s.data.inlined.length - cp1);
|
142
142
|
memcpy(back->data.inlined.bytes, s.data.inlined.bytes + cp1,
|
143
143
|
s.data.inlined.length - cp1);
|
@@ -149,22 +149,22 @@ void grpc_slice_buffer_add(grpc_slice_buffer *sb, grpc_slice s) {
|
|
149
149
|
grpc_slice_buffer_add_indexed(sb, s);
|
150
150
|
}
|
151
151
|
|
152
|
-
void grpc_slice_buffer_addn(grpc_slice_buffer
|
152
|
+
void grpc_slice_buffer_addn(grpc_slice_buffer* sb, grpc_slice* s, size_t n) {
|
153
153
|
size_t i;
|
154
154
|
for (i = 0; i < n; i++) {
|
155
155
|
grpc_slice_buffer_add(sb, s[i]);
|
156
156
|
}
|
157
157
|
}
|
158
158
|
|
159
|
-
void grpc_slice_buffer_pop(grpc_slice_buffer
|
159
|
+
void grpc_slice_buffer_pop(grpc_slice_buffer* sb) {
|
160
160
|
if (sb->count != 0) {
|
161
161
|
size_t count = --sb->count;
|
162
162
|
sb->length -= GRPC_SLICE_LENGTH(sb->slices[count]);
|
163
163
|
}
|
164
164
|
}
|
165
165
|
|
166
|
-
void grpc_slice_buffer_reset_and_unref_internal(grpc_exec_ctx
|
167
|
-
grpc_slice_buffer
|
166
|
+
void grpc_slice_buffer_reset_and_unref_internal(grpc_exec_ctx* exec_ctx,
|
167
|
+
grpc_slice_buffer* sb) {
|
168
168
|
size_t i;
|
169
169
|
for (i = 0; i < sb->count; i++) {
|
170
170
|
grpc_slice_unref_internal(exec_ctx, sb->slices[i]);
|
@@ -174,13 +174,13 @@ void grpc_slice_buffer_reset_and_unref_internal(grpc_exec_ctx *exec_ctx,
|
|
174
174
|
sb->length = 0;
|
175
175
|
}
|
176
176
|
|
177
|
-
void grpc_slice_buffer_reset_and_unref(grpc_slice_buffer
|
177
|
+
void grpc_slice_buffer_reset_and_unref(grpc_slice_buffer* sb) {
|
178
178
|
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
|
179
179
|
grpc_slice_buffer_reset_and_unref_internal(&exec_ctx, sb);
|
180
180
|
grpc_exec_ctx_finish(&exec_ctx);
|
181
181
|
}
|
182
182
|
|
183
|
-
void grpc_slice_buffer_swap(grpc_slice_buffer
|
183
|
+
void grpc_slice_buffer_swap(grpc_slice_buffer* a, grpc_slice_buffer* b) {
|
184
184
|
size_t a_offset = (size_t)(a->slices - a->base_slices);
|
185
185
|
size_t b_offset = (size_t)(b->slices - b->base_slices);
|
186
186
|
|
@@ -207,7 +207,7 @@ void grpc_slice_buffer_swap(grpc_slice_buffer *a, grpc_slice_buffer *b) {
|
|
207
207
|
memcpy(a->base_slices, b->inlined, b_count * sizeof(grpc_slice));
|
208
208
|
} else {
|
209
209
|
/* no inlining: easy swap */
|
210
|
-
GPR_SWAP(grpc_slice
|
210
|
+
GPR_SWAP(grpc_slice*, a->base_slices, b->base_slices);
|
211
211
|
}
|
212
212
|
|
213
213
|
/* Update the slices pointers (cannot do a GPR_SWAP on slices fields here).
|
@@ -222,8 +222,8 @@ void grpc_slice_buffer_swap(grpc_slice_buffer *a, grpc_slice_buffer *b) {
|
|
222
222
|
GPR_SWAP(size_t, a->length, b->length);
|
223
223
|
}
|
224
224
|
|
225
|
-
void grpc_slice_buffer_move_into(grpc_slice_buffer
|
226
|
-
grpc_slice_buffer
|
225
|
+
void grpc_slice_buffer_move_into(grpc_slice_buffer* src,
|
226
|
+
grpc_slice_buffer* dst) {
|
227
227
|
/* anything to move? */
|
228
228
|
if (src->count == 0) {
|
229
229
|
return;
|
@@ -239,8 +239,8 @@ void grpc_slice_buffer_move_into(grpc_slice_buffer *src,
|
|
239
239
|
src->length = 0;
|
240
240
|
}
|
241
241
|
|
242
|
-
static void slice_buffer_move_first_maybe_ref(grpc_slice_buffer
|
243
|
-
grpc_slice_buffer
|
242
|
+
static void slice_buffer_move_first_maybe_ref(grpc_slice_buffer* src, size_t n,
|
243
|
+
grpc_slice_buffer* dst,
|
244
244
|
bool incref) {
|
245
245
|
GPR_ASSERT(src->length >= n);
|
246
246
|
if (src->length == n) {
|
@@ -279,20 +279,20 @@ static void slice_buffer_move_first_maybe_ref(grpc_slice_buffer *src, size_t n,
|
|
279
279
|
GPR_ASSERT(src->count > 0);
|
280
280
|
}
|
281
281
|
|
282
|
-
void grpc_slice_buffer_move_first(grpc_slice_buffer
|
283
|
-
grpc_slice_buffer
|
282
|
+
void grpc_slice_buffer_move_first(grpc_slice_buffer* src, size_t n,
|
283
|
+
grpc_slice_buffer* dst) {
|
284
284
|
slice_buffer_move_first_maybe_ref(src, n, dst, true);
|
285
285
|
}
|
286
286
|
|
287
|
-
void grpc_slice_buffer_move_first_no_ref(grpc_slice_buffer
|
288
|
-
grpc_slice_buffer
|
287
|
+
void grpc_slice_buffer_move_first_no_ref(grpc_slice_buffer* src, size_t n,
|
288
|
+
grpc_slice_buffer* dst) {
|
289
289
|
slice_buffer_move_first_maybe_ref(src, n, dst, false);
|
290
290
|
}
|
291
291
|
|
292
|
-
void grpc_slice_buffer_move_first_into_buffer(grpc_exec_ctx
|
293
|
-
grpc_slice_buffer
|
294
|
-
void
|
295
|
-
char
|
292
|
+
void grpc_slice_buffer_move_first_into_buffer(grpc_exec_ctx* exec_ctx,
|
293
|
+
grpc_slice_buffer* src, size_t n,
|
294
|
+
void* dst) {
|
295
|
+
char* dstp = (char*)dst;
|
296
296
|
GPR_ASSERT(src->length >= n);
|
297
297
|
|
298
298
|
while (n > 0) {
|
@@ -316,8 +316,8 @@ void grpc_slice_buffer_move_first_into_buffer(grpc_exec_ctx *exec_ctx,
|
|
316
316
|
}
|
317
317
|
}
|
318
318
|
|
319
|
-
void grpc_slice_buffer_trim_end(grpc_slice_buffer
|
320
|
-
grpc_slice_buffer
|
319
|
+
void grpc_slice_buffer_trim_end(grpc_slice_buffer* sb, size_t n,
|
320
|
+
grpc_slice_buffer* garbage) {
|
321
321
|
GPR_ASSERT(n <= sb->length);
|
322
322
|
sb->length -= n;
|
323
323
|
for (;;) {
|
@@ -340,7 +340,7 @@ void grpc_slice_buffer_trim_end(grpc_slice_buffer *sb, size_t n,
|
|
340
340
|
}
|
341
341
|
}
|
342
342
|
|
343
|
-
grpc_slice grpc_slice_buffer_take_first(grpc_slice_buffer
|
343
|
+
grpc_slice grpc_slice_buffer_take_first(grpc_slice_buffer* sb) {
|
344
344
|
grpc_slice slice;
|
345
345
|
GPR_ASSERT(sb->count > 0);
|
346
346
|
slice = sb->slices[0];
|
@@ -351,7 +351,7 @@ grpc_slice grpc_slice_buffer_take_first(grpc_slice_buffer *sb) {
|
|
351
351
|
return slice;
|
352
352
|
}
|
353
353
|
|
354
|
-
void grpc_slice_buffer_undo_take_first(grpc_slice_buffer
|
354
|
+
void grpc_slice_buffer_undo_take_first(grpc_slice_buffer* sb,
|
355
355
|
grpc_slice slice) {
|
356
356
|
sb->slices--;
|
357
357
|
sb->slices[0] = slice;
|
@@ -35,12 +35,12 @@ struct grpc_slice_hash_table {
|
|
35
35
|
};
|
36
36
|
|
37
37
|
static bool is_empty(grpc_slice_hash_table_entry* entry) {
|
38
|
-
return entry->value ==
|
38
|
+
return entry->value == nullptr;
|
39
39
|
}
|
40
40
|
|
41
41
|
static void grpc_slice_hash_table_add(grpc_slice_hash_table* table,
|
42
42
|
grpc_slice key, void* value) {
|
43
|
-
GPR_ASSERT(value !=
|
43
|
+
GPR_ASSERT(value != nullptr);
|
44
44
|
const size_t hash = grpc_slice_hash(key);
|
45
45
|
for (size_t offset = 0; offset < table->size; ++offset) {
|
46
46
|
const size_t idx = (hash + offset) % table->size;
|
@@ -77,13 +77,13 @@ grpc_slice_hash_table* grpc_slice_hash_table_create(
|
|
77
77
|
}
|
78
78
|
|
79
79
|
grpc_slice_hash_table* grpc_slice_hash_table_ref(grpc_slice_hash_table* table) {
|
80
|
-
if (table !=
|
80
|
+
if (table != nullptr) gpr_ref(&table->refs);
|
81
81
|
return table;
|
82
82
|
}
|
83
83
|
|
84
84
|
void grpc_slice_hash_table_unref(grpc_exec_ctx* exec_ctx,
|
85
85
|
grpc_slice_hash_table* table) {
|
86
|
-
if (table !=
|
86
|
+
if (table != nullptr && gpr_unref(&table->refs)) {
|
87
87
|
for (size_t i = 0; i < table->size; ++i) {
|
88
88
|
grpc_slice_hash_table_entry* entry = &table->entries[i];
|
89
89
|
if (!is_empty(entry)) {
|
@@ -108,16 +108,16 @@ void* grpc_slice_hash_table_get(const grpc_slice_hash_table* table,
|
|
108
108
|
return table->entries[idx].value;
|
109
109
|
}
|
110
110
|
}
|
111
|
-
return
|
111
|
+
return nullptr; // Not found.
|
112
112
|
}
|
113
113
|
|
114
114
|
static int pointer_cmp(void* a, void* b) { return GPR_ICMP(a, b); }
|
115
115
|
int grpc_slice_hash_table_cmp(const grpc_slice_hash_table* a,
|
116
116
|
const grpc_slice_hash_table* b) {
|
117
117
|
int (*const value_cmp_fn_a)(void* a, void* b) =
|
118
|
-
a->value_cmp !=
|
118
|
+
a->value_cmp != nullptr ? a->value_cmp : pointer_cmp;
|
119
119
|
int (*const value_cmp_fn_b)(void* a, void* b) =
|
120
|
-
b->value_cmp !=
|
120
|
+
b->value_cmp != nullptr ? b->value_cmp : pointer_cmp;
|
121
121
|
// Compare value_fns
|
122
122
|
const int value_fns_cmp =
|
123
123
|
GPR_ICMP((void*)value_cmp_fn_a, (void*)value_cmp_fn_b);
|
@@ -19,6 +19,10 @@
|
|
19
19
|
|
20
20
|
#include "src/core/lib/transport/metadata.h"
|
21
21
|
|
22
|
+
#ifdef __cplusplus
|
23
|
+
extern "C" {
|
24
|
+
#endif
|
25
|
+
|
22
26
|
/** Hash table implementation.
|
23
27
|
*
|
24
28
|
* This implementation uses open addressing
|
@@ -35,7 +39,7 @@ typedef struct grpc_slice_hash_table grpc_slice_hash_table;
|
|
35
39
|
|
36
40
|
typedef struct grpc_slice_hash_table_entry {
|
37
41
|
grpc_slice key;
|
38
|
-
void
|
42
|
+
void* value; /* Must not be NULL. */
|
39
43
|
} grpc_slice_hash_table_entry;
|
40
44
|
|
41
45
|
/** Creates a new hash table of containing \a entries, which is an array
|
@@ -44,18 +48,18 @@ typedef struct grpc_slice_hash_table_entry {
|
|
44
48
|
value_cmp will be used to compare values in the context of \a
|
45
49
|
grpc_slice_hash_table_cmp. If NULL, raw pointer (\a GPR_ICMP) comparison
|
46
50
|
will be used. */
|
47
|
-
grpc_slice_hash_table
|
48
|
-
size_t num_entries, grpc_slice_hash_table_entry
|
49
|
-
void (*destroy_value)(grpc_exec_ctx
|
50
|
-
int (*value_cmp)(void
|
51
|
+
grpc_slice_hash_table* grpc_slice_hash_table_create(
|
52
|
+
size_t num_entries, grpc_slice_hash_table_entry* entries,
|
53
|
+
void (*destroy_value)(grpc_exec_ctx* exec_ctx, void* value),
|
54
|
+
int (*value_cmp)(void* a, void* b));
|
51
55
|
|
52
|
-
grpc_slice_hash_table
|
53
|
-
void grpc_slice_hash_table_unref(grpc_exec_ctx
|
54
|
-
grpc_slice_hash_table
|
56
|
+
grpc_slice_hash_table* grpc_slice_hash_table_ref(grpc_slice_hash_table* table);
|
57
|
+
void grpc_slice_hash_table_unref(grpc_exec_ctx* exec_ctx,
|
58
|
+
grpc_slice_hash_table* table);
|
55
59
|
|
56
60
|
/** Returns the value from \a table associated with \a key.
|
57
61
|
Returns NULL if \a key is not found. */
|
58
|
-
void
|
62
|
+
void* grpc_slice_hash_table_get(const grpc_slice_hash_table* table,
|
59
63
|
const grpc_slice key);
|
60
64
|
|
61
65
|
/** Compares \a a vs. \a b.
|
@@ -64,7 +68,11 @@ void *grpc_slice_hash_table_get(const grpc_slice_hash_table *table,
|
|
64
68
|
* - else, it contains fewer (resp. more) entries,
|
65
69
|
* - else, if strcmp(a_key, b_key) < 1 (resp. > 1),
|
66
70
|
* - else, if value_cmp(a_value, b_value) < 1 (resp. > 1). */
|
67
|
-
int grpc_slice_hash_table_cmp(const grpc_slice_hash_table
|
68
|
-
const grpc_slice_hash_table
|
71
|
+
int grpc_slice_hash_table_cmp(const grpc_slice_hash_table* a,
|
72
|
+
const grpc_slice_hash_table* b);
|
73
|
+
|
74
|
+
#ifdef __cplusplus
|
75
|
+
}
|
76
|
+
#endif
|
69
77
|
|
70
78
|
#endif /* GRPC_CORE_LIB_SLICE_SLICE_HASH_TABLE_H */
|
@@ -18,6 +18,7 @@
|
|
18
18
|
|
19
19
|
#include "src/core/lib/slice/slice_internal.h"
|
20
20
|
|
21
|
+
#include <inttypes.h>
|
21
22
|
#include <string.h>
|
22
23
|
|
23
24
|
#include <grpc/support/alloc.h>
|
@@ -42,12 +43,12 @@ typedef struct interned_slice_refcount {
|
|
42
43
|
size_t length;
|
43
44
|
gpr_atm refcnt;
|
44
45
|
uint32_t hash;
|
45
|
-
struct interned_slice_refcount
|
46
|
+
struct interned_slice_refcount* bucket_next;
|
46
47
|
} interned_slice_refcount;
|
47
48
|
|
48
49
|
typedef struct slice_shard {
|
49
50
|
gpr_mu mu;
|
50
|
-
interned_slice_refcount
|
51
|
+
interned_slice_refcount** strs;
|
51
52
|
size_t count;
|
52
53
|
size_t capacity;
|
53
54
|
} slice_shard;
|
@@ -68,17 +69,17 @@ static static_metadata_hash_ent
|
|
68
69
|
static uint32_t max_static_metadata_hash_probe;
|
69
70
|
static uint32_t static_metadata_hash_values[GRPC_STATIC_MDSTR_COUNT];
|
70
71
|
|
71
|
-
static void interned_slice_ref(void
|
72
|
-
interned_slice_refcount
|
72
|
+
static void interned_slice_ref(void* p) {
|
73
|
+
interned_slice_refcount* s = (interned_slice_refcount*)p;
|
73
74
|
GPR_ASSERT(gpr_atm_no_barrier_fetch_add(&s->refcnt, 1) > 0);
|
74
75
|
}
|
75
76
|
|
76
|
-
static void interned_slice_destroy(interned_slice_refcount
|
77
|
-
slice_shard
|
77
|
+
static void interned_slice_destroy(interned_slice_refcount* s) {
|
78
|
+
slice_shard* shard = &g_shards[SHARD_IDX(s->hash)];
|
78
79
|
gpr_mu_lock(&shard->mu);
|
79
80
|
GPR_ASSERT(0 == gpr_atm_no_barrier_load(&s->refcnt));
|
80
|
-
interned_slice_refcount
|
81
|
-
interned_slice_refcount
|
81
|
+
interned_slice_refcount** prev_next;
|
82
|
+
interned_slice_refcount* cur;
|
82
83
|
for (prev_next = &shard->strs[TABLE_IDX(s->hash, shard->capacity)],
|
83
84
|
cur = *prev_next;
|
84
85
|
cur != s; prev_next = &cur->bucket_next, cur = cur->bucket_next)
|
@@ -89,24 +90,24 @@ static void interned_slice_destroy(interned_slice_refcount *s) {
|
|
89
90
|
gpr_mu_unlock(&shard->mu);
|
90
91
|
}
|
91
92
|
|
92
|
-
static void interned_slice_unref(grpc_exec_ctx
|
93
|
-
interned_slice_refcount
|
93
|
+
static void interned_slice_unref(grpc_exec_ctx* exec_ctx, void* p) {
|
94
|
+
interned_slice_refcount* s = (interned_slice_refcount*)p;
|
94
95
|
if (1 == gpr_atm_full_fetch_add(&s->refcnt, -1)) {
|
95
96
|
interned_slice_destroy(s);
|
96
97
|
}
|
97
98
|
}
|
98
99
|
|
99
|
-
static void interned_slice_sub_ref(void
|
100
|
-
interned_slice_ref(((char
|
100
|
+
static void interned_slice_sub_ref(void* p) {
|
101
|
+
interned_slice_ref(((char*)p) - offsetof(interned_slice_refcount, sub));
|
101
102
|
}
|
102
103
|
|
103
|
-
static void interned_slice_sub_unref(grpc_exec_ctx
|
104
|
+
static void interned_slice_sub_unref(grpc_exec_ctx* exec_ctx, void* p) {
|
104
105
|
interned_slice_unref(exec_ctx,
|
105
|
-
((char
|
106
|
+
((char*)p) - offsetof(interned_slice_refcount, sub));
|
106
107
|
}
|
107
108
|
|
108
109
|
static uint32_t interned_slice_hash(grpc_slice slice) {
|
109
|
-
interned_slice_refcount
|
110
|
+
interned_slice_refcount* s = (interned_slice_refcount*)slice.refcount;
|
110
111
|
return s->hash;
|
111
112
|
}
|
112
113
|
|
@@ -121,16 +122,16 @@ static const grpc_slice_refcount_vtable interned_slice_sub_vtable = {
|
|
121
122
|
interned_slice_sub_ref, interned_slice_sub_unref,
|
122
123
|
grpc_slice_default_eq_impl, grpc_slice_default_hash_impl};
|
123
124
|
|
124
|
-
static void grow_shard(slice_shard
|
125
|
+
static void grow_shard(slice_shard* shard) {
|
125
126
|
size_t capacity = shard->capacity * 2;
|
126
127
|
size_t i;
|
127
|
-
interned_slice_refcount
|
128
|
+
interned_slice_refcount** strtab;
|
128
129
|
interned_slice_refcount *s, *next;
|
129
130
|
|
130
131
|
GPR_TIMER_BEGIN("grow_strtab", 0);
|
131
132
|
|
132
|
-
strtab = (interned_slice_refcount
|
133
|
-
sizeof(interned_slice_refcount
|
133
|
+
strtab = (interned_slice_refcount**)gpr_zalloc(
|
134
|
+
sizeof(interned_slice_refcount*) * capacity);
|
134
135
|
|
135
136
|
for (i = 0; i < shard->capacity; i++) {
|
136
137
|
for (s = shard->strs[i]; s; s = next) {
|
@@ -148,10 +149,10 @@ static void grow_shard(slice_shard *shard) {
|
|
148
149
|
GPR_TIMER_END("grow_strtab", 0);
|
149
150
|
}
|
150
151
|
|
151
|
-
static grpc_slice materialize(interned_slice_refcount
|
152
|
+
static grpc_slice materialize(interned_slice_refcount* s) {
|
152
153
|
grpc_slice slice;
|
153
154
|
slice.refcount = &s->base;
|
154
|
-
slice.data.refcounted.bytes = (uint8_t
|
155
|
+
slice.data.refcounted.bytes = (uint8_t*)(s + 1);
|
155
156
|
slice.data.refcounted.length = s->length;
|
156
157
|
return slice;
|
157
158
|
}
|
@@ -170,12 +171,12 @@ int grpc_static_slice_eq(grpc_slice a, grpc_slice b) {
|
|
170
171
|
}
|
171
172
|
|
172
173
|
uint32_t grpc_slice_hash(grpc_slice s) {
|
173
|
-
return s.refcount ==
|
174
|
-
|
174
|
+
return s.refcount == nullptr ? grpc_slice_default_hash_impl(s)
|
175
|
+
: s.refcount->vtable->hash(s);
|
175
176
|
}
|
176
177
|
|
177
178
|
grpc_slice grpc_slice_maybe_static_intern(grpc_slice slice,
|
178
|
-
bool
|
179
|
+
bool* returned_slice_is_different) {
|
179
180
|
if (GRPC_IS_STATIC_METADATA_STRING(slice)) {
|
180
181
|
return slice;
|
181
182
|
}
|
@@ -217,8 +218,8 @@ grpc_slice grpc_slice_intern(grpc_slice slice) {
|
|
217
218
|
}
|
218
219
|
}
|
219
220
|
|
220
|
-
interned_slice_refcount
|
221
|
-
slice_shard
|
221
|
+
interned_slice_refcount* s;
|
222
|
+
slice_shard* shard = &g_shards[SHARD_IDX(hash)];
|
222
223
|
|
223
224
|
gpr_mu_lock(&shard->mu);
|
224
225
|
|
@@ -243,8 +244,8 @@ grpc_slice grpc_slice_intern(grpc_slice slice) {
|
|
243
244
|
|
244
245
|
/* not found: create a new string */
|
245
246
|
/* string data goes after the internal_string header */
|
246
|
-
s = (interned_slice_refcount
|
247
|
-
|
247
|
+
s = (interned_slice_refcount*)gpr_malloc(sizeof(*s) +
|
248
|
+
GRPC_SLICE_LENGTH(slice));
|
248
249
|
gpr_atm_rel_store(&s->refcnt, 1);
|
249
250
|
s->length = GRPC_SLICE_LENGTH(slice);
|
250
251
|
s->hash = hash;
|
@@ -278,12 +279,12 @@ void grpc_slice_intern_init(void) {
|
|
278
279
|
g_hash_seed = (uint32_t)gpr_now(GPR_CLOCK_REALTIME).tv_nsec;
|
279
280
|
}
|
280
281
|
for (size_t i = 0; i < SHARD_COUNT; i++) {
|
281
|
-
slice_shard
|
282
|
+
slice_shard* shard = &g_shards[i];
|
282
283
|
gpr_mu_init(&shard->mu);
|
283
284
|
shard->count = 0;
|
284
285
|
shard->capacity = INITIAL_SHARD_CAPACITY;
|
285
|
-
shard->strs = (interned_slice_refcount
|
286
|
-
|
286
|
+
shard->strs = (interned_slice_refcount**)gpr_zalloc(sizeof(*shard->strs) *
|
287
|
+
shard->capacity);
|
287
288
|
}
|
288
289
|
for (size_t i = 0; i < GPR_ARRAY_SIZE(static_metadata_hash); i++) {
|
289
290
|
static_metadata_hash[i].hash = 0;
|
@@ -310,16 +311,16 @@ void grpc_slice_intern_init(void) {
|
|
310
311
|
|
311
312
|
void grpc_slice_intern_shutdown(void) {
|
312
313
|
for (size_t i = 0; i < SHARD_COUNT; i++) {
|
313
|
-
slice_shard
|
314
|
+
slice_shard* shard = &g_shards[i];
|
314
315
|
gpr_mu_destroy(&shard->mu);
|
315
316
|
/* TODO(ctiller): GPR_ASSERT(shard->count == 0); */
|
316
317
|
if (shard->count != 0) {
|
317
318
|
gpr_log(GPR_DEBUG, "WARNING: %" PRIuPTR " metadata strings were leaked",
|
318
319
|
shard->count);
|
319
320
|
for (size_t j = 0; j < shard->capacity; j++) {
|
320
|
-
for (interned_slice_refcount
|
321
|
+
for (interned_slice_refcount* s = shard->strs[j]; s;
|
321
322
|
s = s->bucket_next) {
|
322
|
-
char
|
323
|
+
char* text =
|
323
324
|
grpc_dump_slice(materialize(s), GPR_DUMP_HEX | GPR_DUMP_ASCII);
|
324
325
|
gpr_log(GPR_DEBUG, "LEAKED: %s", text);
|
325
326
|
gpr_free(text);
|