EventEngine::RunAfter migration ConnectionAttemptInjector (#31865)

pull/31882/head
Yijie Ma 2 years ago committed by GitHub
parent 9a7e77318b
commit fe9f9afaa0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 18
      test/cpp/end2end/connection_attempt_injector.cc
  2. 5
      test/cpp/end2end/connection_attempt_injector.h

@ -20,7 +20,9 @@
#include "absl/utility/utility.h" #include "absl/utility/utility.h"
#include "src/core/lib/address_utils/sockaddr_utils.h" #include "src/core/lib/address_utils/sockaddr_utils.h"
#include "src/core/lib/event_engine/default_event_engine.h"
#include "src/core/lib/gprpp/sync.h" #include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/iomgr/exec_ctx.h"
// defined in tcp_client.cc // defined in tcp_client.cc
extern grpc_tcp_client_vtable* grpc_tcp_client_impl; extern grpc_tcp_client_vtable* grpc_tcp_client_impl;
@ -191,17 +193,19 @@ ConnectionAttemptInjector::InjectedDelay::InjectedDelay(
grpc_pollset_set* interested_parties, const EndpointConfig& config, grpc_pollset_set* interested_parties, const EndpointConfig& config,
const grpc_resolved_address* addr, grpc_core::Timestamp deadline) const grpc_resolved_address* addr, grpc_core::Timestamp deadline)
: attempt_(closure, ep, interested_parties, config, addr, deadline) { : attempt_(closure, ep, interested_parties, config, addr, deadline) {
GRPC_CLOSURE_INIT(&timer_callback_, TimerCallback, this, nullptr);
grpc_core::Timestamp now = grpc_core::Timestamp::Now(); grpc_core::Timestamp now = grpc_core::Timestamp::Now();
duration = std::min(duration, deadline - now); duration = std::min(duration, deadline - now);
grpc_timer_init(&timer_, now + duration, &timer_callback_); grpc_event_engine::experimental::GetDefaultEventEngine()->RunAfter(
duration, [this] {
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
grpc_core::ExecCtx exec_ctx;
TimerCallback();
});
} }
void ConnectionAttemptInjector::InjectedDelay::TimerCallback( void ConnectionAttemptInjector::InjectedDelay::TimerCallback() {
void* arg, grpc_error_handle /*error*/) { attempt_.Resume();
auto* self = static_cast<InjectedDelay*>(arg); delete this;
self->attempt_.Resume();
delete self;
} }
// //

@ -20,7 +20,6 @@
#include "src/core/lib/event_engine/channel_args_endpoint_config.h" #include "src/core/lib/event_engine/channel_args_endpoint_config.h"
#include "src/core/lib/gprpp/time.h" #include "src/core/lib/gprpp/time.h"
#include "src/core/lib/iomgr/tcp_client.h" #include "src/core/lib/iomgr/tcp_client.h"
#include "src/core/lib/iomgr/timer.h"
namespace grpc { namespace grpc {
namespace testing { namespace testing {
@ -155,11 +154,9 @@ class ConnectionAttemptInjector final {
grpc_core::Timestamp deadline); grpc_core::Timestamp deadline);
private: private:
static void TimerCallback(void* arg, grpc_error_handle /*error*/); void TimerCallback();
QueuedAttempt attempt_; QueuedAttempt attempt_;
grpc_timer timer_;
grpc_closure timer_callback_;
}; };
// Invoked for every TCP connection attempt. // Invoked for every TCP connection attempt.

Loading…
Cancel
Save