[EventEngine] Add invalid handle types to the public API (#32202)
* [EventEngine] Add invalid handle types to the public API * Automated change: Fix sanity tests * add definition for static constexpr members * sanitize Co-authored-by: drfloob <drfloob@users.noreply.github.com>
This commit is contained in:
parent
79f057e9d0
commit
d14020d4e2
|
|
@ -2167,6 +2167,7 @@ add_library(grpc
|
||||||
src/core/lib/event_engine/channel_args_endpoint_config.cc
|
src/core/lib/event_engine/channel_args_endpoint_config.cc
|
||||||
src/core/lib/event_engine/default_event_engine.cc
|
src/core/lib/event_engine/default_event_engine.cc
|
||||||
src/core/lib/event_engine/default_event_engine_factory.cc
|
src/core/lib/event_engine/default_event_engine_factory.cc
|
||||||
|
src/core/lib/event_engine/event_engine.cc
|
||||||
src/core/lib/event_engine/forkable.cc
|
src/core/lib/event_engine/forkable.cc
|
||||||
src/core/lib/event_engine/memory_allocator.cc
|
src/core/lib/event_engine/memory_allocator.cc
|
||||||
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
||||||
|
|
@ -2844,6 +2845,7 @@ add_library(grpc_unsecure
|
||||||
src/core/lib/event_engine/channel_args_endpoint_config.cc
|
src/core/lib/event_engine/channel_args_endpoint_config.cc
|
||||||
src/core/lib/event_engine/default_event_engine.cc
|
src/core/lib/event_engine/default_event_engine.cc
|
||||||
src/core/lib/event_engine/default_event_engine_factory.cc
|
src/core/lib/event_engine/default_event_engine_factory.cc
|
||||||
|
src/core/lib/event_engine/event_engine.cc
|
||||||
src/core/lib/event_engine/forkable.cc
|
src/core/lib/event_engine/forkable.cc
|
||||||
src/core/lib/event_engine/memory_allocator.cc
|
src/core/lib/event_engine/memory_allocator.cc
|
||||||
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
||||||
|
|
@ -4336,6 +4338,7 @@ add_library(grpc_authorization_provider
|
||||||
src/core/lib/event_engine/channel_args_endpoint_config.cc
|
src/core/lib/event_engine/channel_args_endpoint_config.cc
|
||||||
src/core/lib/event_engine/default_event_engine.cc
|
src/core/lib/event_engine/default_event_engine.cc
|
||||||
src/core/lib/event_engine/default_event_engine_factory.cc
|
src/core/lib/event_engine/default_event_engine_factory.cc
|
||||||
|
src/core/lib/event_engine/event_engine.cc
|
||||||
src/core/lib/event_engine/forkable.cc
|
src/core/lib/event_engine/forkable.cc
|
||||||
src/core/lib/event_engine/memory_allocator.cc
|
src/core/lib/event_engine/memory_allocator.cc
|
||||||
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
||||||
|
|
@ -11403,6 +11406,7 @@ add_executable(frame_test
|
||||||
src/core/lib/event_engine/channel_args_endpoint_config.cc
|
src/core/lib/event_engine/channel_args_endpoint_config.cc
|
||||||
src/core/lib/event_engine/default_event_engine.cc
|
src/core/lib/event_engine/default_event_engine.cc
|
||||||
src/core/lib/event_engine/default_event_engine_factory.cc
|
src/core/lib/event_engine/default_event_engine_factory.cc
|
||||||
|
src/core/lib/event_engine/event_engine.cc
|
||||||
src/core/lib/event_engine/forkable.cc
|
src/core/lib/event_engine/forkable.cc
|
||||||
src/core/lib/event_engine/memory_allocator.cc
|
src/core/lib/event_engine/memory_allocator.cc
|
||||||
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
||||||
|
|
@ -20131,6 +20135,7 @@ endif()
|
||||||
if(gRPC_BUILD_TESTS)
|
if(gRPC_BUILD_TESTS)
|
||||||
|
|
||||||
add_executable(test_core_event_engine_slice_buffer_test
|
add_executable(test_core_event_engine_slice_buffer_test
|
||||||
|
src/core/lib/event_engine/event_engine.cc
|
||||||
src/core/lib/event_engine/resolved_address.cc
|
src/core/lib/event_engine/resolved_address.cc
|
||||||
src/core/lib/event_engine/slice.cc
|
src/core/lib/event_engine/slice.cc
|
||||||
src/core/lib/event_engine/slice_buffer.cc
|
src/core/lib/event_engine/slice_buffer.cc
|
||||||
|
|
|
||||||
|
|
@ -1424,6 +1424,7 @@ LIBGRPC_SRC = \
|
||||||
src/core/lib/event_engine/channel_args_endpoint_config.cc \
|
src/core/lib/event_engine/channel_args_endpoint_config.cc \
|
||||||
src/core/lib/event_engine/default_event_engine.cc \
|
src/core/lib/event_engine/default_event_engine.cc \
|
||||||
src/core/lib/event_engine/default_event_engine_factory.cc \
|
src/core/lib/event_engine/default_event_engine_factory.cc \
|
||||||
|
src/core/lib/event_engine/event_engine.cc \
|
||||||
src/core/lib/event_engine/forkable.cc \
|
src/core/lib/event_engine/forkable.cc \
|
||||||
src/core/lib/event_engine/memory_allocator.cc \
|
src/core/lib/event_engine/memory_allocator.cc \
|
||||||
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc \
|
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc \
|
||||||
|
|
@ -1960,6 +1961,7 @@ LIBGRPC_UNSECURE_SRC = \
|
||||||
src/core/lib/event_engine/channel_args_endpoint_config.cc \
|
src/core/lib/event_engine/channel_args_endpoint_config.cc \
|
||||||
src/core/lib/event_engine/default_event_engine.cc \
|
src/core/lib/event_engine/default_event_engine.cc \
|
||||||
src/core/lib/event_engine/default_event_engine_factory.cc \
|
src/core/lib/event_engine/default_event_engine_factory.cc \
|
||||||
|
src/core/lib/event_engine/event_engine.cc \
|
||||||
src/core/lib/event_engine/forkable.cc \
|
src/core/lib/event_engine/forkable.cc \
|
||||||
src/core/lib/event_engine/memory_allocator.cc \
|
src/core/lib/event_engine/memory_allocator.cc \
|
||||||
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc \
|
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc \
|
||||||
|
|
|
||||||
|
|
@ -1559,6 +1559,7 @@ libs:
|
||||||
- src/core/lib/event_engine/channel_args_endpoint_config.cc
|
- src/core/lib/event_engine/channel_args_endpoint_config.cc
|
||||||
- src/core/lib/event_engine/default_event_engine.cc
|
- src/core/lib/event_engine/default_event_engine.cc
|
||||||
- src/core/lib/event_engine/default_event_engine_factory.cc
|
- src/core/lib/event_engine/default_event_engine_factory.cc
|
||||||
|
- src/core/lib/event_engine/event_engine.cc
|
||||||
- src/core/lib/event_engine/forkable.cc
|
- src/core/lib/event_engine/forkable.cc
|
||||||
- src/core/lib/event_engine/memory_allocator.cc
|
- src/core/lib/event_engine/memory_allocator.cc
|
||||||
- src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
- src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
||||||
|
|
@ -2503,6 +2504,7 @@ libs:
|
||||||
- src/core/lib/event_engine/channel_args_endpoint_config.cc
|
- src/core/lib/event_engine/channel_args_endpoint_config.cc
|
||||||
- src/core/lib/event_engine/default_event_engine.cc
|
- src/core/lib/event_engine/default_event_engine.cc
|
||||||
- src/core/lib/event_engine/default_event_engine_factory.cc
|
- src/core/lib/event_engine/default_event_engine_factory.cc
|
||||||
|
- src/core/lib/event_engine/event_engine.cc
|
||||||
- src/core/lib/event_engine/forkable.cc
|
- src/core/lib/event_engine/forkable.cc
|
||||||
- src/core/lib/event_engine/memory_allocator.cc
|
- src/core/lib/event_engine/memory_allocator.cc
|
||||||
- src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
- src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
||||||
|
|
@ -3831,6 +3833,7 @@ libs:
|
||||||
- src/core/lib/event_engine/channel_args_endpoint_config.cc
|
- src/core/lib/event_engine/channel_args_endpoint_config.cc
|
||||||
- src/core/lib/event_engine/default_event_engine.cc
|
- src/core/lib/event_engine/default_event_engine.cc
|
||||||
- src/core/lib/event_engine/default_event_engine_factory.cc
|
- src/core/lib/event_engine/default_event_engine_factory.cc
|
||||||
|
- src/core/lib/event_engine/event_engine.cc
|
||||||
- src/core/lib/event_engine/forkable.cc
|
- src/core/lib/event_engine/forkable.cc
|
||||||
- src/core/lib/event_engine/memory_allocator.cc
|
- src/core/lib/event_engine/memory_allocator.cc
|
||||||
- src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
- src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
||||||
|
|
@ -7610,6 +7613,7 @@ targets:
|
||||||
- src/core/lib/event_engine/channel_args_endpoint_config.cc
|
- src/core/lib/event_engine/channel_args_endpoint_config.cc
|
||||||
- src/core/lib/event_engine/default_event_engine.cc
|
- src/core/lib/event_engine/default_event_engine.cc
|
||||||
- src/core/lib/event_engine/default_event_engine_factory.cc
|
- src/core/lib/event_engine/default_event_engine_factory.cc
|
||||||
|
- src/core/lib/event_engine/event_engine.cc
|
||||||
- src/core/lib/event_engine/forkable.cc
|
- src/core/lib/event_engine/forkable.cc
|
||||||
- src/core/lib/event_engine/memory_allocator.cc
|
- src/core/lib/event_engine/memory_allocator.cc
|
||||||
- src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
- src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc
|
||||||
|
|
@ -11567,6 +11571,7 @@ targets:
|
||||||
- src/core/lib/slice/slice_refcount.h
|
- src/core/lib/slice/slice_refcount.h
|
||||||
- src/core/lib/slice/slice_string_helpers.h
|
- src/core/lib/slice/slice_string_helpers.h
|
||||||
src:
|
src:
|
||||||
|
- src/core/lib/event_engine/event_engine.cc
|
||||||
- src/core/lib/event_engine/resolved_address.cc
|
- src/core/lib/event_engine/resolved_address.cc
|
||||||
- src/core/lib/event_engine/slice.cc
|
- src/core/lib/event_engine/slice.cc
|
||||||
- src/core/lib/event_engine/slice_buffer.cc
|
- src/core/lib/event_engine/slice_buffer.cc
|
||||||
|
|
|
||||||
|
|
@ -506,6 +506,7 @@ if test "$PHP_GRPC" != "no"; then
|
||||||
src/core/lib/event_engine/channel_args_endpoint_config.cc \
|
src/core/lib/event_engine/channel_args_endpoint_config.cc \
|
||||||
src/core/lib/event_engine/default_event_engine.cc \
|
src/core/lib/event_engine/default_event_engine.cc \
|
||||||
src/core/lib/event_engine/default_event_engine_factory.cc \
|
src/core/lib/event_engine/default_event_engine_factory.cc \
|
||||||
|
src/core/lib/event_engine/event_engine.cc \
|
||||||
src/core/lib/event_engine/forkable.cc \
|
src/core/lib/event_engine/forkable.cc \
|
||||||
src/core/lib/event_engine/memory_allocator.cc \
|
src/core/lib/event_engine/memory_allocator.cc \
|
||||||
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc \
|
src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc \
|
||||||
|
|
|
||||||
|
|
@ -472,6 +472,7 @@ if (PHP_GRPC != "no") {
|
||||||
"src\\core\\lib\\event_engine\\channel_args_endpoint_config.cc " +
|
"src\\core\\lib\\event_engine\\channel_args_endpoint_config.cc " +
|
||||||
"src\\core\\lib\\event_engine\\default_event_engine.cc " +
|
"src\\core\\lib\\event_engine\\default_event_engine.cc " +
|
||||||
"src\\core\\lib\\event_engine\\default_event_engine_factory.cc " +
|
"src\\core\\lib\\event_engine\\default_event_engine_factory.cc " +
|
||||||
|
"src\\core\\lib\\event_engine\\event_engine.cc " +
|
||||||
"src\\core\\lib\\event_engine\\forkable.cc " +
|
"src\\core\\lib\\event_engine\\forkable.cc " +
|
||||||
"src\\core\\lib\\event_engine\\memory_allocator.cc " +
|
"src\\core\\lib\\event_engine\\memory_allocator.cc " +
|
||||||
"src\\core\\lib\\event_engine\\posix_engine\\ev_epoll1_linux.cc " +
|
"src\\core\\lib\\event_engine\\posix_engine\\ev_epoll1_linux.cc " +
|
||||||
|
|
|
||||||
|
|
@ -1128,6 +1128,7 @@ Pod::Spec.new do |s|
|
||||||
'src/core/lib/event_engine/default_event_engine.h',
|
'src/core/lib/event_engine/default_event_engine.h',
|
||||||
'src/core/lib/event_engine/default_event_engine_factory.cc',
|
'src/core/lib/event_engine/default_event_engine_factory.cc',
|
||||||
'src/core/lib/event_engine/default_event_engine_factory.h',
|
'src/core/lib/event_engine/default_event_engine_factory.h',
|
||||||
|
'src/core/lib/event_engine/event_engine.cc',
|
||||||
'src/core/lib/event_engine/executor/executor.h',
|
'src/core/lib/event_engine/executor/executor.h',
|
||||||
'src/core/lib/event_engine/forkable.cc',
|
'src/core/lib/event_engine/forkable.cc',
|
||||||
'src/core/lib/event_engine/forkable.h',
|
'src/core/lib/event_engine/forkable.h',
|
||||||
|
|
|
||||||
|
|
@ -1039,6 +1039,7 @@ Gem::Specification.new do |s|
|
||||||
s.files += %w( src/core/lib/event_engine/default_event_engine.h )
|
s.files += %w( src/core/lib/event_engine/default_event_engine.h )
|
||||||
s.files += %w( src/core/lib/event_engine/default_event_engine_factory.cc )
|
s.files += %w( src/core/lib/event_engine/default_event_engine_factory.cc )
|
||||||
s.files += %w( src/core/lib/event_engine/default_event_engine_factory.h )
|
s.files += %w( src/core/lib/event_engine/default_event_engine_factory.h )
|
||||||
|
s.files += %w( src/core/lib/event_engine/event_engine.cc )
|
||||||
s.files += %w( src/core/lib/event_engine/executor/executor.h )
|
s.files += %w( src/core/lib/event_engine/executor/executor.h )
|
||||||
s.files += %w( src/core/lib/event_engine/forkable.cc )
|
s.files += %w( src/core/lib/event_engine/forkable.cc )
|
||||||
s.files += %w( src/core/lib/event_engine/forkable.h )
|
s.files += %w( src/core/lib/event_engine/forkable.h )
|
||||||
|
|
|
||||||
|
|
@ -837,6 +837,7 @@
|
||||||
'src/core/lib/event_engine/channel_args_endpoint_config.cc',
|
'src/core/lib/event_engine/channel_args_endpoint_config.cc',
|
||||||
'src/core/lib/event_engine/default_event_engine.cc',
|
'src/core/lib/event_engine/default_event_engine.cc',
|
||||||
'src/core/lib/event_engine/default_event_engine_factory.cc',
|
'src/core/lib/event_engine/default_event_engine_factory.cc',
|
||||||
|
'src/core/lib/event_engine/event_engine.cc',
|
||||||
'src/core/lib/event_engine/forkable.cc',
|
'src/core/lib/event_engine/forkable.cc',
|
||||||
'src/core/lib/event_engine/memory_allocator.cc',
|
'src/core/lib/event_engine/memory_allocator.cc',
|
||||||
'src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc',
|
'src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc',
|
||||||
|
|
@ -1315,6 +1316,7 @@
|
||||||
'src/core/lib/event_engine/channel_args_endpoint_config.cc',
|
'src/core/lib/event_engine/channel_args_endpoint_config.cc',
|
||||||
'src/core/lib/event_engine/default_event_engine.cc',
|
'src/core/lib/event_engine/default_event_engine.cc',
|
||||||
'src/core/lib/event_engine/default_event_engine_factory.cc',
|
'src/core/lib/event_engine/default_event_engine_factory.cc',
|
||||||
|
'src/core/lib/event_engine/event_engine.cc',
|
||||||
'src/core/lib/event_engine/forkable.cc',
|
'src/core/lib/event_engine/forkable.cc',
|
||||||
'src/core/lib/event_engine/memory_allocator.cc',
|
'src/core/lib/event_engine/memory_allocator.cc',
|
||||||
'src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc',
|
'src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc',
|
||||||
|
|
@ -1818,6 +1820,7 @@
|
||||||
'src/core/lib/event_engine/channel_args_endpoint_config.cc',
|
'src/core/lib/event_engine/channel_args_endpoint_config.cc',
|
||||||
'src/core/lib/event_engine/default_event_engine.cc',
|
'src/core/lib/event_engine/default_event_engine.cc',
|
||||||
'src/core/lib/event_engine/default_event_engine_factory.cc',
|
'src/core/lib/event_engine/default_event_engine_factory.cc',
|
||||||
|
'src/core/lib/event_engine/event_engine.cc',
|
||||||
'src/core/lib/event_engine/forkable.cc',
|
'src/core/lib/event_engine/forkable.cc',
|
||||||
'src/core/lib/event_engine/memory_allocator.cc',
|
'src/core/lib/event_engine/memory_allocator.cc',
|
||||||
'src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc',
|
'src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc',
|
||||||
|
|
|
||||||
|
|
@ -85,6 +85,7 @@ class EventEngine : public std::enable_shared_from_this<EventEngine> {
|
||||||
/// caller - the EventEngine will never delete a Closure, and upon
|
/// caller - the EventEngine will never delete a Closure, and upon
|
||||||
/// cancellation, the EventEngine will simply forget the Closure exists. The
|
/// cancellation, the EventEngine will simply forget the Closure exists. The
|
||||||
/// caller is responsible for all necessary cleanup.
|
/// caller is responsible for all necessary cleanup.
|
||||||
|
|
||||||
class Closure {
|
class Closure {
|
||||||
public:
|
public:
|
||||||
Closure() = default;
|
Closure() = default;
|
||||||
|
|
@ -103,12 +104,14 @@ class EventEngine : public std::enable_shared_from_this<EventEngine> {
|
||||||
struct TaskHandle {
|
struct TaskHandle {
|
||||||
intptr_t keys[2];
|
intptr_t keys[2];
|
||||||
};
|
};
|
||||||
|
static constexpr TaskHandle kInvalidTaskHandle{-1, -1};
|
||||||
/// A handle to a cancellable connection attempt.
|
/// A handle to a cancellable connection attempt.
|
||||||
///
|
///
|
||||||
/// Returned by \a Connect, and can be passed to \a CancelConnect.
|
/// Returned by \a Connect, and can be passed to \a CancelConnect.
|
||||||
struct ConnectionHandle {
|
struct ConnectionHandle {
|
||||||
intptr_t keys[2];
|
intptr_t keys[2];
|
||||||
};
|
};
|
||||||
|
static constexpr ConnectionHandle kInvalidConnectionHandle{-1, -1};
|
||||||
/// Thin wrapper around a platform-specific sockaddr type. A sockaddr struct
|
/// Thin wrapper around a platform-specific sockaddr type. A sockaddr struct
|
||||||
/// exists on all platforms that gRPC supports.
|
/// exists on all platforms that gRPC supports.
|
||||||
///
|
///
|
||||||
|
|
|
||||||
|
|
@ -1021,6 +1021,7 @@
|
||||||
<file baseinstalldir="/" name="src/core/lib/event_engine/default_event_engine.h" role="src" />
|
<file baseinstalldir="/" name="src/core/lib/event_engine/default_event_engine.h" role="src" />
|
||||||
<file baseinstalldir="/" name="src/core/lib/event_engine/default_event_engine_factory.cc" role="src" />
|
<file baseinstalldir="/" name="src/core/lib/event_engine/default_event_engine_factory.cc" role="src" />
|
||||||
<file baseinstalldir="/" name="src/core/lib/event_engine/default_event_engine_factory.h" role="src" />
|
<file baseinstalldir="/" name="src/core/lib/event_engine/default_event_engine_factory.h" role="src" />
|
||||||
|
<file baseinstalldir="/" name="src/core/lib/event_engine/event_engine.cc" role="src" />
|
||||||
<file baseinstalldir="/" name="src/core/lib/event_engine/executor/executor.h" role="src" />
|
<file baseinstalldir="/" name="src/core/lib/event_engine/executor/executor.h" role="src" />
|
||||||
<file baseinstalldir="/" name="src/core/lib/event_engine/forkable.cc" role="src" />
|
<file baseinstalldir="/" name="src/core/lib/event_engine/forkable.cc" role="src" />
|
||||||
<file baseinstalldir="/" name="src/core/lib/event_engine/forkable.h" role="src" />
|
<file baseinstalldir="/" name="src/core/lib/event_engine/forkable.h" role="src" />
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,7 @@ grpc_cc_library(
|
||||||
grpc_cc_library(
|
grpc_cc_library(
|
||||||
name = "event_engine_common",
|
name = "event_engine_common",
|
||||||
srcs = [
|
srcs = [
|
||||||
|
"lib/event_engine/event_engine.cc",
|
||||||
"lib/event_engine/resolved_address.cc",
|
"lib/event_engine/resolved_address.cc",
|
||||||
"lib/event_engine/slice.cc",
|
"lib/event_engine/slice.cc",
|
||||||
"lib/event_engine/slice_buffer.cc",
|
"lib/event_engine/slice_buffer.cc",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
// Copyright 2023 The gRPC Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
#include <grpc/support/port_platform.h>
|
||||||
|
|
||||||
|
#include <grpc/event_engine/event_engine.h>
|
||||||
|
|
||||||
|
namespace grpc_event_engine {
|
||||||
|
namespace experimental {
|
||||||
|
|
||||||
|
constexpr EventEngine::TaskHandle EventEngine::kInvalidTaskHandle;
|
||||||
|
constexpr EventEngine::ConnectionHandle EventEngine::kInvalidConnectionHandle;
|
||||||
|
|
||||||
|
} // namespace experimental
|
||||||
|
} // namespace grpc_event_engine
|
||||||
|
|
@ -232,7 +232,7 @@ EventEngine::ConnectionHandle PosixEventEngine::ConnectInternal(
|
||||||
ep = absl::FailedPreconditionError(absl::StrCat(
|
ep = absl::FailedPreconditionError(absl::StrCat(
|
||||||
"connect failed: ", "invalid addr: ",
|
"connect failed: ", "invalid addr: ",
|
||||||
addr_uri.value()))]() mutable { on_connect(std::move(ep)); });
|
addr_uri.value()))]() mutable { on_connect(std::move(ep)); });
|
||||||
return {0, 0};
|
return EventEngine::kInvalidConnectionHandle;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string name = absl::StrCat("tcp-client:", addr_uri.value());
|
std::string name = absl::StrCat("tcp-client:", addr_uri.value());
|
||||||
|
|
@ -253,7 +253,7 @@ EventEngine::ConnectionHandle PosixEventEngine::ConnectInternal(
|
||||||
std::move(allocator), options)]() mutable {
|
std::move(allocator), options)]() mutable {
|
||||||
on_connect(std::move(ep));
|
on_connect(std::move(ep));
|
||||||
});
|
});
|
||||||
return {0, 0};
|
return EventEngine::kInvalidConnectionHandle;
|
||||||
}
|
}
|
||||||
if (saved_errno != EWOULDBLOCK && saved_errno != EINPROGRESS) {
|
if (saved_errno != EWOULDBLOCK && saved_errno != EINPROGRESS) {
|
||||||
// Connection already failed. Return 0 to discourage any cancellation
|
// Connection already failed. Return 0 to discourage any cancellation
|
||||||
|
|
@ -265,7 +265,7 @@ EventEngine::ConnectionHandle PosixEventEngine::ConnectInternal(
|
||||||
" error: ", std::strerror(saved_errno)))]() mutable {
|
" error: ", std::strerror(saved_errno)))]() mutable {
|
||||||
on_connect(std::move(ep));
|
on_connect(std::move(ep));
|
||||||
});
|
});
|
||||||
return {0, 0};
|
return EventEngine::kInvalidConnectionHandle;
|
||||||
}
|
}
|
||||||
AsyncConnect* ac = new AsyncConnect(
|
AsyncConnect* ac = new AsyncConnect(
|
||||||
std::move(on_connect), shared_from_this(), executor_.get(), handle,
|
std::move(on_connect), shared_from_this(), executor_.get(), handle,
|
||||||
|
|
@ -554,7 +554,7 @@ EventEngine::ConnectionHandle PosixEventEngine::Connect(
|
||||||
if (!socket.ok()) {
|
if (!socket.ok()) {
|
||||||
Run([on_connect = std::move(on_connect),
|
Run([on_connect = std::move(on_connect),
|
||||||
status = socket.status()]() mutable { on_connect(status); });
|
status = socket.status()]() mutable { on_connect(status); });
|
||||||
return {0, 0};
|
return EventEngine::kInvalidConnectionHandle;
|
||||||
}
|
}
|
||||||
return ConnectInternal((*socket).sock, std::move(on_connect),
|
return ConnectInternal((*socket).sock, std::move(on_connect),
|
||||||
(*socket).mapped_target_addr,
|
(*socket).mapped_target_addr,
|
||||||
|
|
|
||||||
|
|
@ -216,7 +216,7 @@ EventEngine::ConnectionHandle WindowsEventEngine::Connect(
|
||||||
Run([on_connect = std::move(on_connect), status = uri.status()]() mutable {
|
Run([on_connect = std::move(on_connect), status = uri.status()]() mutable {
|
||||||
on_connect(status);
|
on_connect(status);
|
||||||
});
|
});
|
||||||
return invalid_connection_handle;
|
return EventEngine::kInvalidConnectionHandle;
|
||||||
}
|
}
|
||||||
GRPC_EVENT_ENGINE_TRACE("EventEngine::%p connecting to %s", this,
|
GRPC_EVENT_ENGINE_TRACE("EventEngine::%p connecting to %s", this,
|
||||||
uri->c_str());
|
uri->c_str());
|
||||||
|
|
@ -233,14 +233,14 @@ EventEngine::ConnectionHandle WindowsEventEngine::Connect(
|
||||||
status = GRPC_WSA_ERROR(WSAGetLastError(), "WSASocket")]() mutable {
|
status = GRPC_WSA_ERROR(WSAGetLastError(), "WSASocket")]() mutable {
|
||||||
on_connect(status);
|
on_connect(status);
|
||||||
});
|
});
|
||||||
return invalid_connection_handle;
|
return EventEngine::kInvalidConnectionHandle;
|
||||||
}
|
}
|
||||||
status = PrepareSocket(sock);
|
status = PrepareSocket(sock);
|
||||||
if (!status.ok()) {
|
if (!status.ok()) {
|
||||||
Run([on_connect = std::move(on_connect), status]() mutable {
|
Run([on_connect = std::move(on_connect), status]() mutable {
|
||||||
on_connect(status);
|
on_connect(status);
|
||||||
});
|
});
|
||||||
return invalid_connection_handle;
|
return EventEngine::kInvalidConnectionHandle;
|
||||||
}
|
}
|
||||||
// Grab the function pointer for ConnectEx for that specific socket It may
|
// Grab the function pointer for ConnectEx for that specific socket It may
|
||||||
// change depending on the interface.
|
// change depending on the interface.
|
||||||
|
|
@ -257,7 +257,7 @@ EventEngine::ConnectionHandle WindowsEventEngine::Connect(
|
||||||
"WSAIoctl(SIO_GET_EXTENSION_FUNCTION_POINTER)")]() mutable {
|
"WSAIoctl(SIO_GET_EXTENSION_FUNCTION_POINTER)")]() mutable {
|
||||||
on_connect(status);
|
on_connect(status);
|
||||||
});
|
});
|
||||||
return invalid_connection_handle;
|
return EventEngine::kInvalidConnectionHandle;
|
||||||
}
|
}
|
||||||
// bind the local address
|
// bind the local address
|
||||||
auto local_address = ResolvedAddressMakeWild6(0);
|
auto local_address = ResolvedAddressMakeWild6(0);
|
||||||
|
|
@ -267,7 +267,7 @@ EventEngine::ConnectionHandle WindowsEventEngine::Connect(
|
||||||
status = GRPC_WSA_ERROR(WSAGetLastError(), "bind")]() mutable {
|
status = GRPC_WSA_ERROR(WSAGetLastError(), "bind")]() mutable {
|
||||||
on_connect(status);
|
on_connect(status);
|
||||||
});
|
});
|
||||||
return invalid_connection_handle;
|
return EventEngine::kInvalidConnectionHandle;
|
||||||
}
|
}
|
||||||
// Connect
|
// Connect
|
||||||
auto watched_socket = iocp_.Watch(sock);
|
auto watched_socket = iocp_.Watch(sock);
|
||||||
|
|
@ -285,7 +285,7 @@ EventEngine::ConnectionHandle WindowsEventEngine::Connect(
|
||||||
on_connect(status);
|
on_connect(status);
|
||||||
});
|
});
|
||||||
watched_socket->MaybeShutdown(status);
|
watched_socket->MaybeShutdown(status);
|
||||||
return invalid_connection_handle;
|
return EventEngine::kInvalidConnectionHandle;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
GPR_ASSERT(watched_socket != nullptr);
|
GPR_ASSERT(watched_socket != nullptr);
|
||||||
|
|
@ -321,8 +321,8 @@ EventEngine::ConnectionHandle WindowsEventEngine::Connect(
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WindowsEventEngine::CancelConnect(EventEngine::ConnectionHandle handle) {
|
bool WindowsEventEngine::CancelConnect(EventEngine::ConnectionHandle handle) {
|
||||||
if (TaskHandleComparator<ConnectionHandle>::Eq()(handle,
|
if (TaskHandleComparator<ConnectionHandle>::Eq()(
|
||||||
invalid_connection_handle)) {
|
handle, EventEngine::kInvalidConnectionHandle)) {
|
||||||
GRPC_EVENT_ENGINE_TRACE("%s",
|
GRPC_EVENT_ENGINE_TRACE("%s",
|
||||||
"Attempted to cancel an invalid connection handle");
|
"Attempted to cancel an invalid connection handle");
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -45,10 +45,6 @@ namespace experimental {
|
||||||
class WindowsEventEngine : public EventEngine,
|
class WindowsEventEngine : public EventEngine,
|
||||||
public grpc_core::KeepsGrpcInitialized {
|
public grpc_core::KeepsGrpcInitialized {
|
||||||
public:
|
public:
|
||||||
constexpr static TaskHandle invalid_handle{-1, -1};
|
|
||||||
constexpr static EventEngine::ConnectionHandle invalid_connection_handle{-1,
|
|
||||||
-1};
|
|
||||||
|
|
||||||
class WindowsListener : public EventEngine::Listener {
|
class WindowsListener : public EventEngine::Listener {
|
||||||
public:
|
public:
|
||||||
~WindowsListener() override;
|
~WindowsListener() override;
|
||||||
|
|
|
||||||
|
|
@ -481,6 +481,7 @@ CORE_SOURCE_FILES = [
|
||||||
'src/core/lib/event_engine/channel_args_endpoint_config.cc',
|
'src/core/lib/event_engine/channel_args_endpoint_config.cc',
|
||||||
'src/core/lib/event_engine/default_event_engine.cc',
|
'src/core/lib/event_engine/default_event_engine.cc',
|
||||||
'src/core/lib/event_engine/default_event_engine_factory.cc',
|
'src/core/lib/event_engine/default_event_engine_factory.cc',
|
||||||
|
'src/core/lib/event_engine/event_engine.cc',
|
||||||
'src/core/lib/event_engine/forkable.cc',
|
'src/core/lib/event_engine/forkable.cc',
|
||||||
'src/core/lib/event_engine/memory_allocator.cc',
|
'src/core/lib/event_engine/memory_allocator.cc',
|
||||||
'src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc',
|
'src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc',
|
||||||
|
|
|
||||||
|
|
@ -2033,6 +2033,7 @@ src/core/lib/event_engine/default_event_engine.cc \
|
||||||
src/core/lib/event_engine/default_event_engine.h \
|
src/core/lib/event_engine/default_event_engine.h \
|
||||||
src/core/lib/event_engine/default_event_engine_factory.cc \
|
src/core/lib/event_engine/default_event_engine_factory.cc \
|
||||||
src/core/lib/event_engine/default_event_engine_factory.h \
|
src/core/lib/event_engine/default_event_engine_factory.h \
|
||||||
|
src/core/lib/event_engine/event_engine.cc \
|
||||||
src/core/lib/event_engine/executor/executor.h \
|
src/core/lib/event_engine/executor/executor.h \
|
||||||
src/core/lib/event_engine/forkable.cc \
|
src/core/lib/event_engine/forkable.cc \
|
||||||
src/core/lib/event_engine/forkable.h \
|
src/core/lib/event_engine/forkable.h \
|
||||||
|
|
|
||||||
|
|
@ -1812,6 +1812,7 @@ src/core/lib/event_engine/default_event_engine.cc \
|
||||||
src/core/lib/event_engine/default_event_engine.h \
|
src/core/lib/event_engine/default_event_engine.h \
|
||||||
src/core/lib/event_engine/default_event_engine_factory.cc \
|
src/core/lib/event_engine/default_event_engine_factory.cc \
|
||||||
src/core/lib/event_engine/default_event_engine_factory.h \
|
src/core/lib/event_engine/default_event_engine_factory.h \
|
||||||
|
src/core/lib/event_engine/event_engine.cc \
|
||||||
src/core/lib/event_engine/executor/executor.h \
|
src/core/lib/event_engine/executor/executor.h \
|
||||||
src/core/lib/event_engine/forkable.cc \
|
src/core/lib/event_engine/forkable.cc \
|
||||||
src/core/lib/event_engine/forkable.h \
|
src/core/lib/event_engine/forkable.h \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue