Revert "[event_engine] Move combiner executor usage to event engine (#31713)" (#31753)

This reverts commit b04aa1cf92.

Co-authored-by: AJ Heller <hork@google.com>
pull/31773/head^2
Cheng-Yu Chung 2 years ago committed by GitHub
parent 6c98d5c606
commit f5d21653fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      BUILD
  2. 5
      bazel/grpc_deps.bzl
  3. 4
      src/core/BUILD
  4. 1
      src/core/ext/filters/client_channel/config_selector.h
  5. 1
      src/core/ext/filters/client_channel/lb_policy/priority/priority.cc
  6. 1
      src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc
  7. 1
      src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc
  8. 4
      src/core/ext/filters/http/message_compress/compression_filter.cc
  9. 4
      src/core/ext/transport/binder/transport/binder_transport.cc
  10. 6
      src/core/ext/transport/binder/wire_format/wire_writer.cc
  11. 1
      src/core/ext/transport/chaotic_good/frame.cc
  12. 5
      src/core/ext/transport/chttp2/transport/chttp2_transport.cc
  13. 1
      src/core/ext/transport/chttp2/transport/flow_control.cc
  14. 1
      src/core/ext/xds/xds_route_config.cc
  15. 26
      src/core/lib/iomgr/combiner.cc
  16. 5
      src/core/lib/iomgr/combiner.h
  17. 6
      src/cpp/ext/gcp/BUILD
  18. 1
      src/cpp/ext/gcp/observability_config.h
  19. 13
      src/cpp/ext/gcp/observability_logging_sink.cc
  20. 2
      src/cpp/ext/gcp/observability_logging_sink.h
  21. 2
      test/core/client_channel/lb_policy/lb_policy_test_lib.h
  22. 7
      test/core/client_channel/lb_policy/outlier_detection_test.cc
  23. 11
      test/core/client_channel/lb_policy/pick_first_test.cc
  24. 1
      test/core/end2end/BUILD
  25. 4
      test/core/end2end/fixtures/http_proxy_fixture.cc
  26. 23
      test/core/end2end/fuzzers/client_fuzzer.cc
  27. 4
      test/core/event_engine/posix/traced_buffer_list_test.cc
  28. 19
      test/core/iomgr/combiner_test.cc
  29. 5
      test/core/transport/binder/wire_reader_test.cc
  30. 1
      test/core/transport/chttp2/flow_control_test.cc
  31. 17
      test/core/xds/xds_client_fuzzer.cc
  32. 1
      test/core/xds/xds_route_config_resource_type_test.cc
  33. 29
      test/cpp/microbenchmarks/bm_closure.cc
  34. 4
      tools/distrib/fix_build_deps.py

@ -999,7 +999,6 @@ grpc_cc_library(
"//src/core:channel_args",
"//src/core:channel_args_preconditioning",
"//src/core:channel_stack_type",
"//src/core:default_event_engine",
"//src/core:iomgr_fwd",
"//src/core:iomgr_port",
"//src/core:slice",
@ -3172,12 +3171,11 @@ grpc_cc_library(
"//src/core:channel_init",
"//src/core:channel_stack_type",
"//src/core:context",
"//src/core:for_each",
"//src/core:grpc_message_size_filter",
"//src/core:latch",
"//src/core:map_pipe",
"//src/core:percent_encoding",
"//src/core:pipe",
"//src/core:promise_like",
"//src/core:seq",
"//src/core:slice",
"//src/core:slice_buffer",

@ -205,11 +205,6 @@ def grpc_deps():
actual = "@com_google_googleapis//google/logging/v2:logging_cc_grpc",
)
native.bind(
name = "googleapis_logging_cc_proto",
actual = "@com_google_googleapis//google/logging/v2:logging_cc_proto",
)
if "boringssl" not in native.existing_rules():
http_archive(
name = "boringssl",

@ -3963,6 +3963,7 @@ grpc_cc_library(
"lb_policy_factory",
"lb_policy_registry",
"pollset_set",
"ref_counted",
"subchannel_interface",
"time",
"validation_errors",
@ -4249,6 +4250,7 @@ grpc_cc_library(
"lb_policy_factory",
"lb_policy_registry",
"pollset_set",
"ref_counted",
"subchannel_interface",
"time",
"validation_errors",
@ -4289,6 +4291,7 @@ grpc_cc_library(
"lb_policy_factory",
"lb_policy_registry",
"pollset_set",
"ref_counted",
"subchannel_interface",
"time",
"validation_errors",
@ -4851,7 +4854,6 @@ grpc_cc_library(
"//:gpr",
"//:gpr_platform",
"//:grpc_base",
"//:grpc_public_hdrs",
"//:hpack_encoder",
"//:hpack_parser",
],

@ -31,6 +31,7 @@
#include <grpc/slice.h>
#include <grpc/support/log.h>
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/gpr/useful.h"
#include "src/core/lib/gprpp/ref_counted.h"

@ -45,6 +45,7 @@
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/gprpp/validation_errors.h"

@ -45,6 +45,7 @@
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/gprpp/validation_errors.h"

@ -44,6 +44,7 @@
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/gprpp/validation_errors.h"

@ -18,6 +18,7 @@
#include <inttypes.h>
#include <cstdint>
#include <functional>
#include <memory>
#include <utility>
@ -42,10 +43,9 @@
#include "src/core/lib/compression/message_compress.h"
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/promise/context.h"
#include "src/core/lib/promise/detail/promise_like.h"
#include "src/core/lib/promise/for_each.h"
#include "src/core/lib/promise/latch.h"
#include "src/core/lib/promise/map_pipe.h"
#include "src/core/lib/promise/pipe.h"
#include "src/core/lib/promise/promise.h"
#include "src/core/lib/promise/seq.h"
#include "src/core/lib/promise/try_concurrently.h"

@ -35,7 +35,6 @@
#include "src/core/ext/transport/binder/wire_format/wire_reader.h"
#include "src/core/ext/transport/binder/wire_format/wire_reader_impl.h"
#include "src/core/ext/transport/binder/wire_format/wire_writer.h"
#include "src/core/lib/event_engine/default_event_engine.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/transport/error_utils.h"
@ -710,8 +709,7 @@ grpc_binder_transport::grpc_binder_transport(
std::unique_ptr<grpc_binder::Binder> binder, bool is_client,
std::shared_ptr<grpc::experimental::binder::SecurityPolicy> security_policy)
: is_client(is_client),
combiner(grpc_combiner_create(
grpc_event_engine::experimental::GetDefaultEventEngine())),
combiner(grpc_combiner_create()),
state_tracker(
is_client ? "binder_transport_client" : "binder_transport_server",
GRPC_CHANNEL_READY),

@ -25,8 +25,6 @@
#include <grpc/support/log.h>
#include "src/core/lib/event_engine/default_event_engine.h"
#define RETURN_IF_ERROR(expr) \
do { \
const absl::Status status = (expr); \
@ -83,9 +81,7 @@ absl::Status WriteTrailingMetadata(const Transaction& tx,
}
WireWriterImpl::WireWriterImpl(std::unique_ptr<Binder> binder)
: binder_(std::move(binder)),
combiner_(grpc_combiner_create(
grpc_event_engine::experimental::GetDefaultEventEngine())) {}
: binder_(std::move(binder)), combiner_(grpc_combiner_create()) {}
WireWriterImpl::~WireWriterImpl() {
GRPC_COMBINER_UNREF(combiner_, "wire_writer_impl");

@ -25,7 +25,6 @@
#include "absl/status/statusor.h"
#include <grpc/slice.h>
#include <grpc/status.h>
#include <grpc/support/log.h>
#include "src/core/lib/gprpp/bitset.h"

@ -39,7 +39,6 @@
#include "absl/types/optional.h"
#include "absl/types/variant.h"
#include <grpc/event_engine/event_engine.h>
#include <grpc/impl/codegen/connectivity_state.h>
#include <grpc/impl/codegen/grpc_types.h>
#include <grpc/slice_buffer.h>
@ -476,9 +475,7 @@ grpc_chttp2_transport::grpc_chttp2_transport(
grpc_endpoint_get_peer(ep), ":client_transport"))),
self_reservation(
memory_owner.MakeReservation(sizeof(grpc_chttp2_transport))),
combiner(grpc_combiner_create(
channel_args
.GetObjectRef<grpc_event_engine::experimental::EventEngine>())),
combiner(grpc_combiner_create()),
state_tracker(is_client ? "client_transport" : "server_transport",
GRPC_CHANNEL_READY),
is_client(is_client),

@ -27,7 +27,6 @@
#include <cmath>
#include <ostream>
#include <string>
#include <tuple>
#include <vector>
#include "absl/strings/str_cat.h"

@ -68,7 +68,6 @@
#include "src/core/lib/gpr/string.h"
#include "src/core/lib/gprpp/env.h"
#include "src/core/lib/gprpp/match.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/json/json.h"
#include "src/core/lib/load_balancing/lb_policy_registry.h"

@ -28,7 +28,7 @@
#include <grpc/support/log.h>
#include "src/core/lib/gprpp/mpscq.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/iomgr/executor.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
grpc_core::DebugOnlyTraceFlag grpc_combiner_trace(false, "combiner");
@ -49,14 +49,14 @@ static void combiner_finally_exec(grpc_core::Combiner* lock,
grpc_closure* closure,
grpc_error_handle error);
grpc_core::Combiner* grpc_combiner_create(
std::shared_ptr<grpc_event_engine::experimental::EventEngine>
event_engine) {
static void offload(void* arg, grpc_error_handle error);
grpc_core::Combiner* grpc_combiner_create(void) {
grpc_core::Combiner* lock = new grpc_core::Combiner();
lock->event_engine = std::move(event_engine);
gpr_ref_init(&lock->refs, 1);
gpr_atm_no_barrier_store(&lock->state, STATE_UNORPHANED);
grpc_closure_list_init(&lock->final_list);
GRPC_CLOSURE_INIT(&lock->offload, offload, lock, nullptr);
GRPC_COMBINER_TRACE(gpr_log(GPR_INFO, "C:%p create", lock));
return lock;
}
@ -163,15 +163,15 @@ static void move_next() {
}
}
static void offload(void* arg, grpc_error_handle /*error*/) {
grpc_core::Combiner* lock = static_cast<grpc_core::Combiner*>(arg);
push_last_on_exec_ctx(lock);
}
static void queue_offload(grpc_core::Combiner* lock) {
move_next();
GRPC_COMBINER_TRACE(gpr_log(GPR_INFO, "C:%p queue_offload", lock));
lock->event_engine->Run([lock] {
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
grpc_core::ExecCtx exec_ctx(0);
push_last_on_exec_ctx(lock);
exec_ctx.Flush();
});
grpc_core::Executor::Run(&lock->offload, absl::OkStatus());
}
bool grpc_combiner_continue_exec_ctx() {
@ -198,7 +198,9 @@ bool grpc_combiner_continue_exec_ctx() {
// 2. the current execution context needs to finish as soon as possible
// 3. the current thread is not a worker for any background poller
// 4. the DEFAULT executor is threaded
if (contended && grpc_core::ExecCtx::Get()->IsReadyToFinish()) {
if (contended && grpc_core::ExecCtx::Get()->IsReadyToFinish() &&
!grpc_iomgr_platform_is_any_background_poller_thread() &&
grpc_core::Executor::IsThreadedDefault()) {
// this execution context wants to move on: schedule remaining work to be
// picked up on the executor
queue_offload(lock);

@ -49,8 +49,8 @@ class Combiner {
gpr_atm state;
bool time_to_execute_final_list = false;
grpc_closure_list final_list;
grpc_closure offload;
gpr_refcount refs;
std::shared_ptr<grpc_event_engine::experimental::EventEngine> event_engine;
};
} // namespace grpc_core
@ -61,8 +61,7 @@ class Combiner {
// Initialize the lock, with an optional workqueue to shift load to when
// necessary
grpc_core::Combiner* grpc_combiner_create(
std::shared_ptr<grpc_event_engine::experimental::EventEngine> event_engine);
grpc_core::Combiner* grpc_combiner_create(void);
#ifndef NDEBUG
#define GRPC_COMBINER_DEBUG_ARGS \

@ -101,22 +101,16 @@ grpc_cc_library(
"absl/strings",
"absl/strings:str_format",
"absl/types:optional",
"googleapis_logging_cc_proto",
"googleapis_logging_grpc_service",
"protobuf_headers",
],
language = "c++",
visibility = ["//test:__subpackages__"],
deps = [
"observability_config",
"//:gpr",
"//:gpr_platform",
"//:grpc++",
"//:grpc_base",
"//:grpc_opencensus_plugin",
"//src/core:env",
"//src/core:json",
"//src/core:time",
"//src/cpp/ext/filters/logging:logging_sink",
],
)

@ -19,7 +19,6 @@
#include <stdint.h>
#include <map>
#include <string>
#include <vector>

@ -23,28 +23,15 @@
#include <stddef.h>
#include <algorithm>
#include <map>
#include <utility>
#include <google/protobuf/timestamp.pb.h>
#include "absl/strings/str_cat.h"
#include "absl/strings/str_format.h"
#include "absl/types/optional.h"
#include "google/logging/v2/log_entry.pb.h"
#include "google/logging/v2/logging.grpc.pb.h"
#include "google/logging/v2/logging.pb.h"
#include <grpc/impl/codegen/gpr_types.h>
#include <grpc/impl/codegen/grpc_types.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/security/credentials.h>
#include <grpcpp/support/channel_arguments.h>
#include <grpcpp/support/status.h>
#include "src/core/lib/gprpp/env.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/json/json.h"
#include "src/cpp/ext/filters/census/open_census_call_tracer.h"
namespace grpc {

@ -27,8 +27,6 @@
#include <string>
#include <vector>
#include <google/protobuf/struct.pb.h>
#include "absl/strings/string_view.h"
#include "google/logging/v2/logging.grpc.pb.h"

@ -26,7 +26,6 @@
#include <map>
#include <memory>
#include <string>
#include <tuple>
#include <utility>
#include <vector>
@ -37,7 +36,6 @@
#include "absl/strings/string_view.h"
#include "absl/synchronization/notification.h"
#include "absl/types/optional.h"
#include "absl/types/span.h"
#include "absl/types/variant.h"
#include "gtest/gtest.h"

@ -19,20 +19,27 @@
#include <algorithm>
#include <map>
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/strings/string_view.h"
#include "gtest/gtest.h"
#include <grpc/grpc.h>
#include "src/core/ext/filters/client_channel/subchannel_pool_interface.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/iomgr/resolved_address.h"
#include "src/core/lib/json/json.h"
#include "src/core/lib/load_balancing/lb_policy.h"
#include "src/core/lib/resolver/server_address.h"
#include "test/core/client_channel/lb_policy/lb_policy_test_lib.h"
#include "test/core/util/test_config.h"

@ -16,16 +16,25 @@
#include <stddef.h>
#include <algorithm>
#include <map>
#include <memory>
#include <utility>
#include <vector>
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/strings/string_view.h"
#include "gtest/gtest.h"
#include <grpc/grpc.h>
#include "src/core/ext/filters/client_channel/subchannel_pool_interface.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/iomgr/resolved_address.h"
#include "src/core/lib/load_balancing/lb_policy.h"
#include "src/core/lib/resolver/server_address.h"
#include "test/core/client_channel/lb_policy/lb_policy_test_lib.h"
#include "test/core/util/test_config.h"

@ -72,7 +72,6 @@ grpc_cc_library(
"//src/core:channel_args",
"//src/core:channel_args_preconditioning",
"//src/core:closure",
"//src/core:default_event_engine",
"//src/core:error",
"//src/core:iomgr_fwd",
"//src/core:pollset_set",

@ -41,7 +41,6 @@
#include "src/core/lib/channel/channel_args_preconditioning.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/event_engine/channel_args_endpoint_config.h"
#include "src/core/lib/event_engine/default_event_engine.h"
#include "src/core/lib/gprpp/host_port.h"
#include "src/core/lib/gprpp/memory.h"
#include "src/core/lib/gprpp/status_helper.h"
@ -68,8 +67,7 @@ struct grpc_end2end_http_proxy {
grpc_end2end_http_proxy()
: server(nullptr), channel_args(nullptr), mu(nullptr), combiner(nullptr) {
gpr_ref_init(&users, 1);
combiner = grpc_combiner_create(
grpc_event_engine::experimental::GetDefaultEventEngine());
combiner = grpc_combiner_create();
}
std::string proxy_name;
grpc_core::Thread thd;

@ -20,13 +20,11 @@
#include <stdlib.h>
#include <string.h>
#include <memory>
#include <string>
#include "absl/status/statusor.h"
#include <grpc/byte_buffer.h>
#include <grpc/event_engine/event_engine.h>
#include <grpc/grpc.h>
#include <grpc/slice.h>
#include <grpc/status.h>
@ -37,7 +35,6 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_args_preconditioning.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/event_engine/default_event_engine.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/iomgr/endpoint.h"
#include "src/core/lib/iomgr/exec_ctx.h"
@ -47,16 +44,11 @@
#include "src/core/lib/surface/channel_stack_type.h"
#include "src/core/lib/surface/event_string.h"
#include "src/core/lib/transport/transport_fwd.h"
#include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h"
#include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h"
#include "test/core/util/mock_endpoint.h"
bool squelch = true;
bool leak_check = true;
using ::grpc_event_engine::experimental::FuzzingEventEngine;
using ::grpc_event_engine::experimental::GetDefaultEventEngine;
static void discard_write(grpc_slice /*slice*/) {}
static void* tag(intptr_t t) { return reinterpret_cast<void*>(t); }
@ -65,13 +57,6 @@ static void dont_log(gpr_log_func_args* /*args*/) {}
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
if (squelch) gpr_set_log_function(dont_log);
grpc_event_engine::experimental::SetEventEngineFactory([]() {
return std::make_unique<FuzzingEventEngine>(
FuzzingEventEngine::Options(), fuzzing_event_engine::Actions{});
});
auto engine =
std::dynamic_pointer_cast<FuzzingEventEngine>(GetDefaultEventEngine());
FuzzingEventEngine::SetGlobalNowImplEngine(engine.get());
grpc_init();
{
grpc_core::ExecCtx exec_ctx;
@ -109,8 +94,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
grpc_status_code status;
grpc_slice details = grpc_empty_slice();
engine->Tick();
grpc_op ops[6];
memset(ops, 0, sizeof(ops));
grpc_op* op = ops;
@ -151,7 +134,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
grpc_event ev;
while (true) {
engine->Tick();
grpc_core::ExecCtx::Get()->Flush();
ev = grpc_completion_queue_next(cq, gpr_inf_past(GPR_CLOCK_REALTIME),
nullptr);
@ -167,8 +149,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
}
done:
engine->FuzzingDone();
engine->Tick();
if (requested_calls) {
grpc_call_cancel(call, nullptr);
}
@ -202,7 +182,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
grpc_byte_buffer_destroy(response_payload_recv);
}
}
grpc_shutdown_blocking();
FuzzingEventEngine::UnsetGlobalNowImplEngine(engine.get());
grpc_shutdown();
return 0;
}

@ -19,11 +19,7 @@
#include "gtest/gtest.h"
#include <grpc/grpc.h>
#include <grpc/support/atm.h>
#include <grpc/support/log.h>
#include <grpc/support/time.h>
#include "src/core/lib/gpr/useful.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/iomgr/port.h"

@ -24,7 +24,6 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include "src/core/lib/event_engine/default_event_engine_factory.h"
#include "src/core/lib/gpr/useful.h"
#include "src/core/lib/gprpp/thd.h"
#include "test/core/util/test_config.h"
@ -32,11 +31,7 @@
TEST(CombinerTest, TestNoOp) {
gpr_log(GPR_DEBUG, "test_no_op");
grpc_core::ExecCtx exec_ctx;
GRPC_COMBINER_UNREF(
grpc_combiner_create(
std::shared_ptr<grpc_event_engine::experimental::EventEngine>(
grpc_event_engine::experimental::CreateEventEngine())),
"test_no_op");
GRPC_COMBINER_UNREF(grpc_combiner_create(), "test_no_op");
}
static void set_event_to_true(void* value, grpc_error_handle /*error*/) {
@ -46,9 +41,7 @@ static void set_event_to_true(void* value, grpc_error_handle /*error*/) {
TEST(CombinerTest, TestExecuteOne) {
gpr_log(GPR_DEBUG, "test_execute_one");
grpc_core::Combiner* lock = grpc_combiner_create(
std::shared_ptr<grpc_event_engine::experimental::EventEngine>(
grpc_event_engine::experimental::CreateEventEngine()));
grpc_core::Combiner* lock = grpc_combiner_create();
gpr_event done;
gpr_event_init(&done);
grpc_core::ExecCtx exec_ctx;
@ -102,9 +95,7 @@ static void execute_many_loop(void* a) {
TEST(CombinerTest, TestExecuteMany) {
gpr_log(GPR_DEBUG, "test_execute_many");
grpc_core::Combiner* lock = grpc_combiner_create(
std::shared_ptr<grpc_event_engine::experimental::EventEngine>(
grpc_event_engine::experimental::CreateEventEngine()));
grpc_core::Combiner* lock = grpc_combiner_create();
grpc_core::Thread thds[10];
thd_args ta[GPR_ARRAY_SIZE(thds)];
for (size_t i = 0; i < GPR_ARRAY_SIZE(thds); i++) {
@ -137,9 +128,7 @@ static void add_finally(void* arg, grpc_error_handle /*error*/) {
TEST(CombinerTest, TestExecuteFinally) {
gpr_log(GPR_DEBUG, "test_execute_finally");
grpc_core::Combiner* lock = grpc_combiner_create(
std::shared_ptr<grpc_event_engine::experimental::EventEngine>(
grpc_event_engine::experimental::CreateEventEngine()));
grpc_core::Combiner* lock = grpc_combiner_create();
grpc_core::ExecCtx exec_ctx;
gpr_event_init(&got_in_finally);
lock->Run(GRPC_CLOSURE_CREATE(add_finally, lock, nullptr), absl::OkStatus());

@ -370,8 +370,5 @@ TEST_F(WireReaderTest, ServerInitialMetadata) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
grpc::testing::TestEnvironment env(&argc, argv);
grpc_init();
int r = RUN_ALL_TESTS();
grpc_shutdown();
return r;
return RUN_ALL_TESTS();
}

@ -15,7 +15,6 @@
#include "src/core/ext/transport/chttp2/transport/flow_control.h"
#include <memory>
#include <tuple>
#include "gtest/gtest.h"

@ -14,33 +14,16 @@
// limitations under the License.
//
#include <map>
#include <memory>
#include <set>
#include <string>
#include <utility>
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "absl/time/time.h"
#include "absl/types/optional.h"
#include <grpc/grpc.h>
#include <grpc/support/log.h>
#include "src/core/ext/xds/xds_bootstrap.h"
#include "src/core/ext/xds/xds_bootstrap_grpc.h"
#include "src/core/ext/xds/xds_client.h"
#include "src/core/ext/xds/xds_cluster.h"
#include "src/core/ext/xds/xds_endpoint.h"
#include "src/core/ext/xds/xds_listener.h"
#include "src/core/ext/xds/xds_route_config.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/libfuzzer/libfuzzer_macro.h"
#include "src/proto/grpc/testing/xds/v3/discovery.pb.h"
#include "test/core/xds/xds_client_fuzzer.pb.h"
#include "test/core/xds/xds_transport_fake.h"

@ -44,6 +44,7 @@
#include "src/core/ext/xds/xds_bootstrap.h"
#include "src/core/ext/xds/xds_bootstrap_grpc.h"
#include "src/core/ext/xds/xds_client.h"
#include "src/core/ext/xds/xds_http_filters.h"
#include "src/core/ext/xds/xds_resource_type.h"
#include "src/core/ext/xds/xds_route_config.h"
#include "src/core/lib/channel/status_util.h"

@ -24,7 +24,6 @@
#include <grpc/grpc.h>
#include "src/core/lib/event_engine/default_event_engine_factory.h"
#include "src/core/lib/gpr/spinlock.h"
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/combiner.h"
@ -60,9 +59,7 @@ static void BM_ClosureInitAgainstExecCtx(benchmark::State& state) {
BENCHMARK(BM_ClosureInitAgainstExecCtx);
static void BM_ClosureInitAgainstCombiner(benchmark::State& state) {
grpc_core::Combiner* combiner = grpc_combiner_create(
std::shared_ptr<grpc_event_engine::experimental::EventEngine>(
grpc_event_engine::experimental::CreateEventEngine()));
grpc_core::Combiner* combiner = grpc_combiner_create();
grpc_closure c;
grpc_core::ExecCtx exec_ctx;
for (auto _ : state) {
@ -207,9 +204,7 @@ static void BM_TryAcquireSpinlock(benchmark::State& state) {
BENCHMARK(BM_TryAcquireSpinlock);
static void BM_ClosureSchedOnCombiner(benchmark::State& state) {
grpc_core::Combiner* combiner = grpc_combiner_create(
std::shared_ptr<grpc_event_engine::experimental::EventEngine>(
grpc_event_engine::experimental::CreateEventEngine()));
grpc_core::Combiner* combiner = grpc_combiner_create();
grpc_closure c;
GRPC_CLOSURE_INIT(&c, DoNothing, nullptr, nullptr);
grpc_core::ExecCtx exec_ctx;
@ -222,9 +217,7 @@ static void BM_ClosureSchedOnCombiner(benchmark::State& state) {
BENCHMARK(BM_ClosureSchedOnCombiner);
static void BM_ClosureSched2OnCombiner(benchmark::State& state) {
grpc_core::Combiner* combiner = grpc_combiner_create(
std::shared_ptr<grpc_event_engine::experimental::EventEngine>(
grpc_event_engine::experimental::CreateEventEngine()));
grpc_core::Combiner* combiner = grpc_combiner_create();
grpc_closure c1;
grpc_closure c2;
GRPC_CLOSURE_INIT(&c1, DoNothing, nullptr, nullptr);
@ -240,9 +233,7 @@ static void BM_ClosureSched2OnCombiner(benchmark::State& state) {
BENCHMARK(BM_ClosureSched2OnCombiner);
static void BM_ClosureSched3OnCombiner(benchmark::State& state) {
grpc_core::Combiner* combiner = grpc_combiner_create(
std::shared_ptr<grpc_event_engine::experimental::EventEngine>(
grpc_event_engine::experimental::CreateEventEngine()));
grpc_core::Combiner* combiner = grpc_combiner_create();
grpc_closure c1;
grpc_closure c2;
grpc_closure c3;
@ -261,10 +252,8 @@ static void BM_ClosureSched3OnCombiner(benchmark::State& state) {
BENCHMARK(BM_ClosureSched3OnCombiner);
static void BM_ClosureSched2OnTwoCombiners(benchmark::State& state) {
auto ee = std::shared_ptr<grpc_event_engine::experimental::EventEngine>(
grpc_event_engine::experimental::CreateEventEngine());
grpc_core::Combiner* combiner1 = grpc_combiner_create(ee);
grpc_core::Combiner* combiner2 = grpc_combiner_create(ee);
grpc_core::Combiner* combiner1 = grpc_combiner_create();
grpc_core::Combiner* combiner2 = grpc_combiner_create();
grpc_closure c1;
grpc_closure c2;
GRPC_CLOSURE_INIT(&c1, DoNothing, nullptr, nullptr);
@ -281,10 +270,8 @@ static void BM_ClosureSched2OnTwoCombiners(benchmark::State& state) {
BENCHMARK(BM_ClosureSched2OnTwoCombiners);
static void BM_ClosureSched4OnTwoCombiners(benchmark::State& state) {
auto ee = std::shared_ptr<grpc_event_engine::experimental::EventEngine>(
grpc_event_engine::experimental::CreateEventEngine());
grpc_core::Combiner* combiner1 = grpc_combiner_create(ee);
grpc_core::Combiner* combiner2 = grpc_combiner_create(ee);
grpc_core::Combiner* combiner1 = grpc_combiner_create();
grpc_core::Combiner* combiner2 = grpc_combiner_create();
grpc_closure c1;
grpc_closure c2;
grpc_closure c3;

@ -141,12 +141,8 @@ EXTERNAL_DEPS = {
'googleapis_trace_grpc_service',
'google/logging/v2/logging.grpc.pb.h':
'googleapis_logging_grpc_service',
'google/logging/v2/logging.pb.h':
'googleapis_logging_cc_proto',
'google/monitoring/v3/metric_service.grpc.pb.h':
'googleapis_monitoring_grpc_service',
'google/logging/v2/log_entry.pb.h':
'googleapis_logging_cc_proto',
'gmock/gmock.h':
'gtest',
'gtest/gtest.h':

Loading…
Cancel
Save