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 "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/iomgr/exec_ctx.h"
// defined in tcp_client.cc
extern grpc_tcp_client_vtable* grpc_tcp_client_impl;
@ -191,17 +193,19 @@ ConnectionAttemptInjector::InjectedDelay::InjectedDelay(
grpc_pollset_set* interested_parties, const EndpointConfig& config,
const grpc_resolved_address* addr, grpc_core::Timestamp 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();
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* arg, grpc_error_handle /*error*/) {
auto* self = static_cast<InjectedDelay*>(arg);
self->attempt_.Resume();
delete self;
void ConnectionAttemptInjector::InjectedDelay::TimerCallback() {
attempt_.Resume();
delete this;
}
//

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

Loading…
Cancel
Save