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
@@ -20,22 +20,34 @@
|
|
20
20
|
#define GRPC_CORE_LIB_TRANSPORT_ERROR_UTILS_H
|
21
21
|
|
22
22
|
#include "src/core/lib/iomgr/error.h"
|
23
|
+
#include "src/core/lib/iomgr/exec_ctx.h"
|
23
24
|
#include "src/core/lib/transport/http2_errors.h"
|
24
25
|
|
26
|
+
#ifdef __cplusplus
|
27
|
+
extern "C" {
|
28
|
+
#endif
|
29
|
+
|
25
30
|
/// A utility function to get the status code and message to be returned
|
26
31
|
/// to the application. If not set in the top-level message, looks
|
27
32
|
/// through child errors until it finds the first one with these attributes.
|
28
|
-
/// All attributes are pulled from the same child error.
|
29
|
-
///
|
33
|
+
/// All attributes are pulled from the same child error. error_string will
|
34
|
+
/// be populated with the entire error string. If any of the attributes (code,
|
35
|
+
/// msg, http_status, error_string) are unneeded, they can be passed as
|
30
36
|
/// NULL.
|
31
|
-
void grpc_error_get_status(
|
32
|
-
|
33
|
-
|
37
|
+
void grpc_error_get_status(grpc_exec_ctx* exec_ctx, grpc_error* error,
|
38
|
+
grpc_millis deadline, grpc_status_code* code,
|
39
|
+
grpc_slice* slice,
|
40
|
+
grpc_http2_error_code* http_status,
|
41
|
+
const char** error_string);
|
34
42
|
|
35
43
|
/// A utility function to check whether there is a clear status code that
|
36
44
|
/// doesn't need to be guessed in \a error. This means that \a error or some
|
37
45
|
/// child has GRPC_ERROR_INT_GRPC_STATUS set, or that it is GRPC_ERROR_NONE or
|
38
46
|
/// GRPC_ERROR_CANCELLED
|
39
|
-
bool grpc_error_has_clear_grpc_status(grpc_error
|
47
|
+
bool grpc_error_has_clear_grpc_status(grpc_error* error);
|
48
|
+
|
49
|
+
#ifdef __cplusplus
|
50
|
+
}
|
51
|
+
#endif
|
40
52
|
|
41
53
|
#endif /* GRPC_CORE_LIB_TRANSPORT_ERROR_UTILS_H */
|
@@ -19,6 +19,7 @@
|
|
19
19
|
#include "src/core/lib/transport/metadata.h"
|
20
20
|
|
21
21
|
#include <assert.h>
|
22
|
+
#include <inttypes.h>
|
22
23
|
#include <stddef.h>
|
23
24
|
#include <string.h>
|
24
25
|
|
@@ -47,9 +48,9 @@
|
|
47
48
|
* used to determine which kind of element a pointer refers to.
|
48
49
|
*/
|
49
50
|
|
51
|
+
grpc_core::DebugOnlyTraceFlag grpc_trace_metadata(false, "metadata");
|
52
|
+
|
50
53
|
#ifndef NDEBUG
|
51
|
-
grpc_tracer_flag grpc_trace_metadata =
|
52
|
-
GRPC_TRACER_INITIALIZER(false, "metadata");
|
53
54
|
#define DEBUG_ARGS , const char *file, int line
|
54
55
|
#define FWD_DEBUG_ARGS , file, line
|
55
56
|
#define REF_MD_LOCKED(shard, s) ref_md_locked((shard), (s), __FILE__, __LINE__)
|
@@ -66,7 +67,7 @@ grpc_tracer_flag grpc_trace_metadata =
|
|
66
67
|
#define TABLE_IDX(hash, capacity) (((hash) >> (LOG2_SHARD_COUNT)) % (capacity))
|
67
68
|
#define SHARD_IDX(hash) ((hash) & ((1 << (LOG2_SHARD_COUNT)) - 1))
|
68
69
|
|
69
|
-
typedef void (*destroy_user_data_func)(void
|
70
|
+
typedef void (*destroy_user_data_func)(void* user_data);
|
70
71
|
|
71
72
|
/* Shadow structure for grpc_mdelem_data for interned elements */
|
72
73
|
typedef struct interned_metadata {
|
@@ -81,7 +82,7 @@ typedef struct interned_metadata {
|
|
81
82
|
gpr_atm destroy_user_data;
|
82
83
|
gpr_atm user_data;
|
83
84
|
|
84
|
-
struct interned_metadata
|
85
|
+
struct interned_metadata* bucket_next;
|
85
86
|
} interned_metadata;
|
86
87
|
|
87
88
|
/* Shadow structure for grpc_mdelem_data for allocated elements */
|
@@ -96,7 +97,7 @@ typedef struct allocated_metadata {
|
|
96
97
|
|
97
98
|
typedef struct mdtab_shard {
|
98
99
|
gpr_mu mu;
|
99
|
-
interned_metadata
|
100
|
+
interned_metadata** elems;
|
100
101
|
size_t count;
|
101
102
|
size_t capacity;
|
102
103
|
/** Estimate of the number of unreferenced mdelems in the hash table.
|
@@ -107,24 +108,24 @@ typedef struct mdtab_shard {
|
|
107
108
|
|
108
109
|
static mdtab_shard g_shards[SHARD_COUNT];
|
109
110
|
|
110
|
-
static void gc_mdtab(grpc_exec_ctx
|
111
|
+
static void gc_mdtab(grpc_exec_ctx* exec_ctx, mdtab_shard* shard);
|
111
112
|
|
112
113
|
void grpc_mdctx_global_init(void) {
|
113
114
|
/* initialize shards */
|
114
115
|
for (size_t i = 0; i < SHARD_COUNT; i++) {
|
115
|
-
mdtab_shard
|
116
|
+
mdtab_shard* shard = &g_shards[i];
|
116
117
|
gpr_mu_init(&shard->mu);
|
117
118
|
shard->count = 0;
|
118
119
|
gpr_atm_no_barrier_store(&shard->free_estimate, 0);
|
119
120
|
shard->capacity = INITIAL_SHARD_CAPACITY;
|
120
|
-
shard->elems = (interned_metadata
|
121
|
-
|
121
|
+
shard->elems = (interned_metadata**)gpr_zalloc(sizeof(*shard->elems) *
|
122
|
+
shard->capacity);
|
122
123
|
}
|
123
124
|
}
|
124
125
|
|
125
|
-
void grpc_mdctx_global_shutdown(grpc_exec_ctx
|
126
|
+
void grpc_mdctx_global_shutdown(grpc_exec_ctx* exec_ctx) {
|
126
127
|
for (size_t i = 0; i < SHARD_COUNT; i++) {
|
127
|
-
mdtab_shard
|
128
|
+
mdtab_shard* shard = &g_shards[i];
|
128
129
|
gpr_mu_destroy(&shard->mu);
|
129
130
|
gc_mdtab(exec_ctx, shard);
|
130
131
|
/* TODO(ctiller): GPR_ASSERT(shard->count == 0); */
|
@@ -145,14 +146,14 @@ static int is_mdelem_static(grpc_mdelem e) {
|
|
145
146
|
&grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT];
|
146
147
|
}
|
147
148
|
|
148
|
-
static void ref_md_locked(mdtab_shard
|
149
|
-
interned_metadata
|
149
|
+
static void ref_md_locked(mdtab_shard* shard,
|
150
|
+
interned_metadata* md DEBUG_ARGS) {
|
150
151
|
#ifndef NDEBUG
|
151
|
-
if (
|
152
|
-
char
|
153
|
-
char
|
152
|
+
if (grpc_trace_metadata.enabled()) {
|
153
|
+
char* key_str = grpc_slice_to_c_string(md->key);
|
154
|
+
char* value_str = grpc_slice_to_c_string(md->value);
|
154
155
|
gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG,
|
155
|
-
"ELM REF:%p:%" PRIdPTR "->%" PRIdPTR ": '%s' = '%s'", (void
|
156
|
+
"ELM REF:%p:%" PRIdPTR "->%" PRIdPTR ": '%s' = '%s'", (void*)md,
|
156
157
|
gpr_atm_no_barrier_load(&md->refcnt),
|
157
158
|
gpr_atm_no_barrier_load(&md->refcnt) + 1, key_str, value_str);
|
158
159
|
gpr_free(key_str);
|
@@ -164,9 +165,9 @@ static void ref_md_locked(mdtab_shard *shard,
|
|
164
165
|
}
|
165
166
|
}
|
166
167
|
|
167
|
-
static void gc_mdtab(grpc_exec_ctx
|
168
|
+
static void gc_mdtab(grpc_exec_ctx* exec_ctx, mdtab_shard* shard) {
|
168
169
|
size_t i;
|
169
|
-
interned_metadata
|
170
|
+
interned_metadata** prev_next;
|
170
171
|
interned_metadata *md, *next;
|
171
172
|
gpr_atm num_freed = 0;
|
172
173
|
|
@@ -174,7 +175,7 @@ static void gc_mdtab(grpc_exec_ctx *exec_ctx, mdtab_shard *shard) {
|
|
174
175
|
for (i = 0; i < shard->capacity; i++) {
|
175
176
|
prev_next = &shard->elems[i];
|
176
177
|
for (md = shard->elems[i]; md; md = next) {
|
177
|
-
void
|
178
|
+
void* user_data = (void*)gpr_atm_no_barrier_load(&md->user_data);
|
178
179
|
next = md->bucket_next;
|
179
180
|
if (gpr_atm_acq_load(&md->refcnt) == 0) {
|
180
181
|
grpc_slice_unref_internal(exec_ctx, md->key);
|
@@ -196,17 +197,17 @@ static void gc_mdtab(grpc_exec_ctx *exec_ctx, mdtab_shard *shard) {
|
|
196
197
|
GPR_TIMER_END("gc_mdtab", 0);
|
197
198
|
}
|
198
199
|
|
199
|
-
static void grow_mdtab(mdtab_shard
|
200
|
+
static void grow_mdtab(mdtab_shard* shard) {
|
200
201
|
size_t capacity = shard->capacity * 2;
|
201
202
|
size_t i;
|
202
|
-
interned_metadata
|
203
|
+
interned_metadata** mdtab;
|
203
204
|
interned_metadata *md, *next;
|
204
205
|
uint32_t hash;
|
205
206
|
|
206
207
|
GPR_TIMER_BEGIN("grow_mdtab", 0);
|
207
208
|
|
208
209
|
mdtab =
|
209
|
-
(interned_metadata
|
210
|
+
(interned_metadata**)gpr_zalloc(sizeof(interned_metadata*) * capacity);
|
210
211
|
|
211
212
|
for (i = 0; i < shard->capacity; i++) {
|
212
213
|
for (md = shard->elems[i]; md; md = next) {
|
@@ -227,7 +228,7 @@ static void grow_mdtab(mdtab_shard *shard) {
|
|
227
228
|
GPR_TIMER_END("grow_mdtab", 0);
|
228
229
|
}
|
229
230
|
|
230
|
-
static void rehash_mdtab(grpc_exec_ctx
|
231
|
+
static void rehash_mdtab(grpc_exec_ctx* exec_ctx, mdtab_shard* shard) {
|
231
232
|
if (gpr_atm_no_barrier_load(&shard->free_estimate) >
|
232
233
|
(gpr_atm)(shard->capacity / 4)) {
|
233
234
|
gc_mdtab(exec_ctx, shard);
|
@@ -237,25 +238,25 @@ static void rehash_mdtab(grpc_exec_ctx *exec_ctx, mdtab_shard *shard) {
|
|
237
238
|
}
|
238
239
|
|
239
240
|
grpc_mdelem grpc_mdelem_create(
|
240
|
-
grpc_exec_ctx
|
241
|
-
grpc_mdelem_data
|
241
|
+
grpc_exec_ctx* exec_ctx, grpc_slice key, grpc_slice value,
|
242
|
+
grpc_mdelem_data* compatible_external_backing_store) {
|
242
243
|
if (!grpc_slice_is_interned(key) || !grpc_slice_is_interned(value)) {
|
243
|
-
if (compatible_external_backing_store !=
|
244
|
+
if (compatible_external_backing_store != nullptr) {
|
244
245
|
return GRPC_MAKE_MDELEM(compatible_external_backing_store,
|
245
246
|
GRPC_MDELEM_STORAGE_EXTERNAL);
|
246
247
|
}
|
247
248
|
|
248
|
-
allocated_metadata
|
249
|
-
(allocated_metadata
|
249
|
+
allocated_metadata* allocated =
|
250
|
+
(allocated_metadata*)gpr_malloc(sizeof(*allocated));
|
250
251
|
allocated->key = grpc_slice_ref_internal(key);
|
251
252
|
allocated->value = grpc_slice_ref_internal(value);
|
252
253
|
gpr_atm_rel_store(&allocated->refcnt, 1);
|
253
254
|
#ifndef NDEBUG
|
254
|
-
if (
|
255
|
-
char
|
256
|
-
char
|
255
|
+
if (grpc_trace_metadata.enabled()) {
|
256
|
+
char* key_str = grpc_slice_to_c_string(allocated->key);
|
257
|
+
char* value_str = grpc_slice_to_c_string(allocated->value);
|
257
258
|
gpr_log(GPR_DEBUG, "ELM ALLOC:%p:%" PRIdPTR ": '%s' = '%s'",
|
258
|
-
(void
|
259
|
+
(void*)allocated, gpr_atm_no_barrier_load(&allocated->refcnt),
|
259
260
|
key_str, value_str);
|
260
261
|
gpr_free(key_str);
|
261
262
|
gpr_free(value_str);
|
@@ -275,8 +276,8 @@ grpc_mdelem grpc_mdelem_create(
|
|
275
276
|
|
276
277
|
uint32_t hash =
|
277
278
|
GRPC_MDSTR_KV_HASH(grpc_slice_hash(key), grpc_slice_hash(value));
|
278
|
-
interned_metadata
|
279
|
-
mdtab_shard
|
279
|
+
interned_metadata* md;
|
280
|
+
mdtab_shard* shard = &g_shards[SHARD_IDX(hash)];
|
280
281
|
size_t idx;
|
281
282
|
|
282
283
|
GPR_TIMER_BEGIN("grpc_mdelem_from_metadata_strings", 0);
|
@@ -295,7 +296,7 @@ grpc_mdelem grpc_mdelem_create(
|
|
295
296
|
}
|
296
297
|
|
297
298
|
/* not found: create a new pair */
|
298
|
-
md = (interned_metadata
|
299
|
+
md = (interned_metadata*)gpr_malloc(sizeof(interned_metadata));
|
299
300
|
gpr_atm_rel_store(&md->refcnt, 1);
|
300
301
|
md->key = grpc_slice_ref_internal(key);
|
301
302
|
md->value = grpc_slice_ref_internal(value);
|
@@ -305,10 +306,10 @@ grpc_mdelem grpc_mdelem_create(
|
|
305
306
|
shard->elems[idx] = md;
|
306
307
|
gpr_mu_init(&md->mu_user_data);
|
307
308
|
#ifndef NDEBUG
|
308
|
-
if (
|
309
|
-
char
|
310
|
-
char
|
311
|
-
gpr_log(GPR_DEBUG, "ELM NEW:%p:%" PRIdPTR ": '%s' = '%s'", (void
|
309
|
+
if (grpc_trace_metadata.enabled()) {
|
310
|
+
char* key_str = grpc_slice_to_c_string(md->key);
|
311
|
+
char* value_str = grpc_slice_to_c_string(md->value);
|
312
|
+
gpr_log(GPR_DEBUG, "ELM NEW:%p:%" PRIdPTR ": '%s' = '%s'", (void*)md,
|
312
313
|
gpr_atm_no_barrier_load(&md->refcnt), key_str, value_str);
|
313
314
|
gpr_free(key_str);
|
314
315
|
gpr_free(value_str);
|
@@ -327,23 +328,23 @@ grpc_mdelem grpc_mdelem_create(
|
|
327
328
|
return GRPC_MAKE_MDELEM(md, GRPC_MDELEM_STORAGE_INTERNED);
|
328
329
|
}
|
329
330
|
|
330
|
-
grpc_mdelem grpc_mdelem_from_slices(grpc_exec_ctx
|
331
|
+
grpc_mdelem grpc_mdelem_from_slices(grpc_exec_ctx* exec_ctx, grpc_slice key,
|
331
332
|
grpc_slice value) {
|
332
|
-
grpc_mdelem out = grpc_mdelem_create(exec_ctx, key, value,
|
333
|
+
grpc_mdelem out = grpc_mdelem_create(exec_ctx, key, value, nullptr);
|
333
334
|
grpc_slice_unref_internal(exec_ctx, key);
|
334
335
|
grpc_slice_unref_internal(exec_ctx, value);
|
335
336
|
return out;
|
336
337
|
}
|
337
338
|
|
338
|
-
grpc_mdelem grpc_mdelem_from_grpc_metadata(grpc_exec_ctx
|
339
|
-
grpc_metadata
|
339
|
+
grpc_mdelem grpc_mdelem_from_grpc_metadata(grpc_exec_ctx* exec_ctx,
|
340
|
+
grpc_metadata* metadata) {
|
340
341
|
bool changed = false;
|
341
342
|
grpc_slice key_slice =
|
342
343
|
grpc_slice_maybe_static_intern(metadata->key, &changed);
|
343
344
|
grpc_slice value_slice =
|
344
345
|
grpc_slice_maybe_static_intern(metadata->value, &changed);
|
345
346
|
return grpc_mdelem_create(exec_ctx, key_slice, value_slice,
|
346
|
-
changed ?
|
347
|
+
changed ? nullptr : (grpc_mdelem_data*)metadata);
|
347
348
|
}
|
348
349
|
|
349
350
|
static size_t get_base64_encoded_size(size_t raw_length) {
|
@@ -351,11 +352,14 @@ static size_t get_base64_encoded_size(size_t raw_length) {
|
|
351
352
|
return raw_length / 3 * 4 + tail_xtra[raw_length % 3];
|
352
353
|
}
|
353
354
|
|
354
|
-
size_t grpc_mdelem_get_size_in_hpack_table(grpc_mdelem elem
|
355
|
+
size_t grpc_mdelem_get_size_in_hpack_table(grpc_mdelem elem,
|
356
|
+
bool use_true_binary_metadata) {
|
355
357
|
size_t overhead_and_key = 32 + GRPC_SLICE_LENGTH(GRPC_MDKEY(elem));
|
356
358
|
size_t value_len = GRPC_SLICE_LENGTH(GRPC_MDVALUE(elem));
|
357
359
|
if (grpc_is_binary_header(GRPC_MDKEY(elem))) {
|
358
|
-
return overhead_and_key +
|
360
|
+
return overhead_and_key + (use_true_binary_metadata
|
361
|
+
? value_len + 1
|
362
|
+
: get_base64_encoded_size(value_len));
|
359
363
|
} else {
|
360
364
|
return overhead_and_key + value_len;
|
361
365
|
}
|
@@ -367,14 +371,14 @@ grpc_mdelem grpc_mdelem_ref(grpc_mdelem gmd DEBUG_ARGS) {
|
|
367
371
|
case GRPC_MDELEM_STORAGE_STATIC:
|
368
372
|
break;
|
369
373
|
case GRPC_MDELEM_STORAGE_INTERNED: {
|
370
|
-
interned_metadata
|
374
|
+
interned_metadata* md = (interned_metadata*)GRPC_MDELEM_DATA(gmd);
|
371
375
|
#ifndef NDEBUG
|
372
|
-
if (
|
373
|
-
char
|
374
|
-
char
|
376
|
+
if (grpc_trace_metadata.enabled()) {
|
377
|
+
char* key_str = grpc_slice_to_c_string(md->key);
|
378
|
+
char* value_str = grpc_slice_to_c_string(md->value);
|
375
379
|
gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG,
|
376
380
|
"ELM REF:%p:%" PRIdPTR "->%" PRIdPTR ": '%s' = '%s'",
|
377
|
-
(void
|
381
|
+
(void*)md, gpr_atm_no_barrier_load(&md->refcnt),
|
378
382
|
gpr_atm_no_barrier_load(&md->refcnt) + 1, key_str, value_str);
|
379
383
|
gpr_free(key_str);
|
380
384
|
gpr_free(value_str);
|
@@ -389,14 +393,14 @@ grpc_mdelem grpc_mdelem_ref(grpc_mdelem gmd DEBUG_ARGS) {
|
|
389
393
|
break;
|
390
394
|
}
|
391
395
|
case GRPC_MDELEM_STORAGE_ALLOCATED: {
|
392
|
-
allocated_metadata
|
396
|
+
allocated_metadata* md = (allocated_metadata*)GRPC_MDELEM_DATA(gmd);
|
393
397
|
#ifndef NDEBUG
|
394
|
-
if (
|
395
|
-
char
|
396
|
-
char
|
398
|
+
if (grpc_trace_metadata.enabled()) {
|
399
|
+
char* key_str = grpc_slice_to_c_string(md->key);
|
400
|
+
char* value_str = grpc_slice_to_c_string(md->value);
|
397
401
|
gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG,
|
398
402
|
"ELM REF:%p:%" PRIdPTR "->%" PRIdPTR ": '%s' = '%s'",
|
399
|
-
(void
|
403
|
+
(void*)md, gpr_atm_no_barrier_load(&md->refcnt),
|
400
404
|
gpr_atm_no_barrier_load(&md->refcnt) + 1, key_str, value_str);
|
401
405
|
gpr_free(key_str);
|
402
406
|
gpr_free(value_str);
|
@@ -413,20 +417,20 @@ grpc_mdelem grpc_mdelem_ref(grpc_mdelem gmd DEBUG_ARGS) {
|
|
413
417
|
return gmd;
|
414
418
|
}
|
415
419
|
|
416
|
-
void grpc_mdelem_unref(grpc_exec_ctx
|
420
|
+
void grpc_mdelem_unref(grpc_exec_ctx* exec_ctx, grpc_mdelem gmd DEBUG_ARGS) {
|
417
421
|
switch (GRPC_MDELEM_STORAGE(gmd)) {
|
418
422
|
case GRPC_MDELEM_STORAGE_EXTERNAL:
|
419
423
|
case GRPC_MDELEM_STORAGE_STATIC:
|
420
424
|
break;
|
421
425
|
case GRPC_MDELEM_STORAGE_INTERNED: {
|
422
|
-
interned_metadata
|
426
|
+
interned_metadata* md = (interned_metadata*)GRPC_MDELEM_DATA(gmd);
|
423
427
|
#ifndef NDEBUG
|
424
|
-
if (
|
425
|
-
char
|
426
|
-
char
|
428
|
+
if (grpc_trace_metadata.enabled()) {
|
429
|
+
char* key_str = grpc_slice_to_c_string(md->key);
|
430
|
+
char* value_str = grpc_slice_to_c_string(md->value);
|
427
431
|
gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG,
|
428
432
|
"ELM UNREF:%p:%" PRIdPTR "->%" PRIdPTR ": '%s' = '%s'",
|
429
|
-
(void
|
433
|
+
(void*)md, gpr_atm_no_barrier_load(&md->refcnt),
|
430
434
|
gpr_atm_no_barrier_load(&md->refcnt) - 1, key_str, value_str);
|
431
435
|
gpr_free(key_str);
|
432
436
|
gpr_free(value_str);
|
@@ -439,20 +443,20 @@ void grpc_mdelem_unref(grpc_exec_ctx *exec_ctx, grpc_mdelem gmd DEBUG_ARGS) {
|
|
439
443
|
if (1 == prev_refcount) {
|
440
444
|
/* once the refcount hits zero, some other thread can come along and
|
441
445
|
free md at any time: it's unsafe from this point on to access it */
|
442
|
-
mdtab_shard
|
446
|
+
mdtab_shard* shard = &g_shards[SHARD_IDX(hash)];
|
443
447
|
gpr_atm_no_barrier_fetch_add(&shard->free_estimate, 1);
|
444
448
|
}
|
445
449
|
break;
|
446
450
|
}
|
447
451
|
case GRPC_MDELEM_STORAGE_ALLOCATED: {
|
448
|
-
allocated_metadata
|
452
|
+
allocated_metadata* md = (allocated_metadata*)GRPC_MDELEM_DATA(gmd);
|
449
453
|
#ifndef NDEBUG
|
450
|
-
if (
|
451
|
-
char
|
452
|
-
char
|
454
|
+
if (grpc_trace_metadata.enabled()) {
|
455
|
+
char* key_str = grpc_slice_to_c_string(md->key);
|
456
|
+
char* value_str = grpc_slice_to_c_string(md->value);
|
453
457
|
gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG,
|
454
458
|
"ELM UNREF:%p:%" PRIdPTR "->%" PRIdPTR ": '%s' = '%s'",
|
455
|
-
(void
|
459
|
+
(void*)md, gpr_atm_no_barrier_load(&md->refcnt),
|
456
460
|
gpr_atm_no_barrier_load(&md->refcnt) - 1, key_str, value_str);
|
457
461
|
gpr_free(key_str);
|
458
462
|
gpr_free(value_str);
|
@@ -470,51 +474,51 @@ void grpc_mdelem_unref(grpc_exec_ctx *exec_ctx, grpc_mdelem gmd DEBUG_ARGS) {
|
|
470
474
|
}
|
471
475
|
}
|
472
476
|
|
473
|
-
void
|
477
|
+
void* grpc_mdelem_get_user_data(grpc_mdelem md, void (*destroy_func)(void*)) {
|
474
478
|
switch (GRPC_MDELEM_STORAGE(md)) {
|
475
479
|
case GRPC_MDELEM_STORAGE_EXTERNAL:
|
476
480
|
case GRPC_MDELEM_STORAGE_ALLOCATED:
|
477
|
-
return
|
481
|
+
return nullptr;
|
478
482
|
case GRPC_MDELEM_STORAGE_STATIC:
|
479
|
-
return (void
|
480
|
-
|
483
|
+
return (void*)grpc_static_mdelem_user_data[GRPC_MDELEM_DATA(md) -
|
484
|
+
grpc_static_mdelem_table];
|
481
485
|
case GRPC_MDELEM_STORAGE_INTERNED: {
|
482
|
-
interned_metadata
|
483
|
-
void
|
486
|
+
interned_metadata* im = (interned_metadata*)GRPC_MDELEM_DATA(md);
|
487
|
+
void* result;
|
484
488
|
if (gpr_atm_acq_load(&im->destroy_user_data) == (gpr_atm)destroy_func) {
|
485
|
-
return (void
|
489
|
+
return (void*)gpr_atm_no_barrier_load(&im->user_data);
|
486
490
|
} else {
|
487
|
-
return
|
491
|
+
return nullptr;
|
488
492
|
}
|
489
493
|
return result;
|
490
494
|
}
|
491
495
|
}
|
492
|
-
GPR_UNREACHABLE_CODE(return
|
496
|
+
GPR_UNREACHABLE_CODE(return nullptr);
|
493
497
|
}
|
494
498
|
|
495
|
-
void
|
496
|
-
void
|
499
|
+
void* grpc_mdelem_set_user_data(grpc_mdelem md, void (*destroy_func)(void*),
|
500
|
+
void* user_data) {
|
497
501
|
switch (GRPC_MDELEM_STORAGE(md)) {
|
498
502
|
case GRPC_MDELEM_STORAGE_EXTERNAL:
|
499
503
|
case GRPC_MDELEM_STORAGE_ALLOCATED:
|
500
504
|
destroy_func(user_data);
|
501
|
-
return
|
505
|
+
return nullptr;
|
502
506
|
case GRPC_MDELEM_STORAGE_STATIC:
|
503
507
|
destroy_func(user_data);
|
504
|
-
return (void
|
505
|
-
|
508
|
+
return (void*)grpc_static_mdelem_user_data[GRPC_MDELEM_DATA(md) -
|
509
|
+
grpc_static_mdelem_table];
|
506
510
|
case GRPC_MDELEM_STORAGE_INTERNED: {
|
507
|
-
interned_metadata
|
511
|
+
interned_metadata* im = (interned_metadata*)GRPC_MDELEM_DATA(md);
|
508
512
|
GPR_ASSERT(!is_mdelem_static(md));
|
509
|
-
GPR_ASSERT((user_data ==
|
513
|
+
GPR_ASSERT((user_data == nullptr) == (destroy_func == nullptr));
|
510
514
|
gpr_mu_lock(&im->mu_user_data);
|
511
515
|
if (gpr_atm_no_barrier_load(&im->destroy_user_data)) {
|
512
516
|
/* user data can only be set once */
|
513
517
|
gpr_mu_unlock(&im->mu_user_data);
|
514
|
-
if (destroy_func !=
|
518
|
+
if (destroy_func != nullptr) {
|
515
519
|
destroy_func(user_data);
|
516
520
|
}
|
517
|
-
return (void
|
521
|
+
return (void*)gpr_atm_no_barrier_load(&im->user_data);
|
518
522
|
}
|
519
523
|
gpr_atm_no_barrier_store(&im->user_data, (gpr_atm)user_data);
|
520
524
|
gpr_atm_rel_store(&im->destroy_user_data, (gpr_atm)destroy_func);
|
@@ -522,7 +526,7 @@ void *grpc_mdelem_set_user_data(grpc_mdelem md, void (*destroy_func)(void *),
|
|
522
526
|
return user_data;
|
523
527
|
}
|
524
528
|
}
|
525
|
-
GPR_UNREACHABLE_CODE(return
|
529
|
+
GPR_UNREACHABLE_CODE(return nullptr);
|
526
530
|
}
|
527
531
|
|
528
532
|
bool grpc_mdelem_eq(grpc_mdelem a, grpc_mdelem b) {
|