diff --git a/BUILD b/BUILD
index 4b4a7f036d7..e95c27bcb30 100644
--- a/BUILD
+++ b/BUILD
@@ -1878,7 +1878,6 @@ grpc_cc_library(
"src/core/lib/iomgr/internal_errqueue.cc",
"src/core/lib/iomgr/iocp_windows.cc",
"src/core/lib/iomgr/iomgr.cc",
- "src/core/lib/iomgr/iomgr_custom.cc",
"src/core/lib/iomgr/iomgr_posix.cc",
"src/core/lib/iomgr/iomgr_posix_cfstream.cc",
"src/core/lib/iomgr/iomgr_windows.cc",
@@ -1887,13 +1886,10 @@ grpc_cc_library(
"src/core/lib/iomgr/lockfree_event.cc",
"src/core/lib/iomgr/polling_entity.cc",
"src/core/lib/iomgr/pollset.cc",
- "src/core/lib/iomgr/pollset_custom.cc",
"src/core/lib/iomgr/pollset_set.cc",
- "src/core/lib/iomgr/pollset_set_custom.cc",
"src/core/lib/iomgr/pollset_set_windows.cc",
"src/core/lib/iomgr/pollset_windows.cc",
"src/core/lib/iomgr/resolve_address.cc",
- "src/core/lib/iomgr/resolve_address_custom.cc",
"src/core/lib/iomgr/resolve_address_posix.cc",
"src/core/lib/iomgr/resolve_address_windows.cc",
"src/core/lib/iomgr/socket_factory_posix.cc",
@@ -1905,13 +1901,10 @@ grpc_cc_library(
"src/core/lib/iomgr/socket_windows.cc",
"src/core/lib/iomgr/tcp_client.cc",
"src/core/lib/iomgr/tcp_client_cfstream.cc",
- "src/core/lib/iomgr/tcp_client_custom.cc",
"src/core/lib/iomgr/tcp_client_posix.cc",
"src/core/lib/iomgr/tcp_client_windows.cc",
- "src/core/lib/iomgr/tcp_custom.cc",
"src/core/lib/iomgr/tcp_posix.cc",
"src/core/lib/iomgr/tcp_server.cc",
- "src/core/lib/iomgr/tcp_server_custom.cc",
"src/core/lib/iomgr/tcp_server_posix.cc",
"src/core/lib/iomgr/tcp_server_utils_posix_common.cc",
"src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc",
@@ -1920,7 +1913,6 @@ grpc_cc_library(
"src/core/lib/iomgr/tcp_windows.cc",
"src/core/lib/iomgr/time_averaged_stats.cc",
"src/core/lib/iomgr/timer.cc",
- "src/core/lib/iomgr/timer_custom.cc",
"src/core/lib/iomgr/timer_generic.cc",
"src/core/lib/iomgr/timer_heap.cc",
"src/core/lib/iomgr/timer_manager.cc",
@@ -2021,22 +2013,18 @@ grpc_cc_library(
"src/core/lib/iomgr/internal_errqueue.h",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.h",
- "src/core/lib/iomgr/iomgr_custom.h",
"src/core/lib/iomgr/is_epollexclusive_available.h",
"src/core/lib/iomgr/load_file.h",
"src/core/lib/iomgr/lockfree_event.h",
"src/core/lib/iomgr/nameser.h",
"src/core/lib/iomgr/polling_entity.h",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_custom.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_custom.h",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.h",
"src/core/lib/iomgr/python_util.h",
"src/core/lib/iomgr/resolve_address.h",
"src/core/lib/iomgr/resolve_address_impl.h",
- "src/core/lib/iomgr/resolve_address_custom.h",
"src/core/lib/iomgr/resolve_address_posix.h",
"src/core/lib/iomgr/resolve_address_windows.h",
"src/core/lib/iomgr/sockaddr.h",
@@ -2049,14 +2037,12 @@ grpc_cc_library(
"src/core/lib/iomgr/sys_epoll_wrapper.h",
"src/core/lib/iomgr/tcp_client.h",
"src/core/lib/iomgr/tcp_client_posix.h",
- "src/core/lib/iomgr/tcp_custom.h",
"src/core/lib/iomgr/tcp_posix.h",
"src/core/lib/iomgr/tcp_server.h",
"src/core/lib/iomgr/tcp_server_utils_posix.h",
"src/core/lib/iomgr/tcp_windows.h",
"src/core/lib/iomgr/time_averaged_stats.h",
"src/core/lib/iomgr/timer.h",
- "src/core/lib/iomgr/timer_custom.h",
"src/core/lib/iomgr/timer_generic.h",
"src/core/lib/iomgr/timer_heap.h",
"src/core/lib/iomgr/timer_manager.h",
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b5a69553ddb..3c15000f227 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2041,7 +2041,6 @@ add_library(grpc
src/core/lib/iomgr/internal_errqueue.cc
src/core/lib/iomgr/iocp_windows.cc
src/core/lib/iomgr/iomgr.cc
- src/core/lib/iomgr/iomgr_custom.cc
src/core/lib/iomgr/iomgr_internal.cc
src/core/lib/iomgr/iomgr_posix.cc
src/core/lib/iomgr/iomgr_posix_cfstream.cc
@@ -2051,13 +2050,10 @@ add_library(grpc
src/core/lib/iomgr/lockfree_event.cc
src/core/lib/iomgr/polling_entity.cc
src/core/lib/iomgr/pollset.cc
- src/core/lib/iomgr/pollset_custom.cc
src/core/lib/iomgr/pollset_set.cc
- src/core/lib/iomgr/pollset_set_custom.cc
src/core/lib/iomgr/pollset_set_windows.cc
src/core/lib/iomgr/pollset_windows.cc
src/core/lib/iomgr/resolve_address.cc
- src/core/lib/iomgr/resolve_address_custom.cc
src/core/lib/iomgr/resolve_address_posix.cc
src/core/lib/iomgr/resolve_address_windows.cc
src/core/lib/iomgr/socket_factory_posix.cc
@@ -2069,13 +2065,10 @@ add_library(grpc
src/core/lib/iomgr/socket_windows.cc
src/core/lib/iomgr/tcp_client.cc
src/core/lib/iomgr/tcp_client_cfstream.cc
- src/core/lib/iomgr/tcp_client_custom.cc
src/core/lib/iomgr/tcp_client_posix.cc
src/core/lib/iomgr/tcp_client_windows.cc
- src/core/lib/iomgr/tcp_custom.cc
src/core/lib/iomgr/tcp_posix.cc
src/core/lib/iomgr/tcp_server.cc
- src/core/lib/iomgr/tcp_server_custom.cc
src/core/lib/iomgr/tcp_server_posix.cc
src/core/lib/iomgr/tcp_server_utils_posix_common.cc
src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc
@@ -2084,7 +2077,6 @@ add_library(grpc
src/core/lib/iomgr/tcp_windows.cc
src/core/lib/iomgr/time_averaged_stats.cc
src/core/lib/iomgr/timer.cc
- src/core/lib/iomgr/timer_custom.cc
src/core/lib/iomgr/timer_generic.cc
src/core/lib/iomgr/timer_heap.cc
src/core/lib/iomgr/timer_manager.cc
@@ -2690,7 +2682,6 @@ add_library(grpc_unsecure
src/core/lib/iomgr/internal_errqueue.cc
src/core/lib/iomgr/iocp_windows.cc
src/core/lib/iomgr/iomgr.cc
- src/core/lib/iomgr/iomgr_custom.cc
src/core/lib/iomgr/iomgr_internal.cc
src/core/lib/iomgr/iomgr_posix.cc
src/core/lib/iomgr/iomgr_posix_cfstream.cc
@@ -2700,13 +2691,10 @@ add_library(grpc_unsecure
src/core/lib/iomgr/lockfree_event.cc
src/core/lib/iomgr/polling_entity.cc
src/core/lib/iomgr/pollset.cc
- src/core/lib/iomgr/pollset_custom.cc
src/core/lib/iomgr/pollset_set.cc
- src/core/lib/iomgr/pollset_set_custom.cc
src/core/lib/iomgr/pollset_set_windows.cc
src/core/lib/iomgr/pollset_windows.cc
src/core/lib/iomgr/resolve_address.cc
- src/core/lib/iomgr/resolve_address_custom.cc
src/core/lib/iomgr/resolve_address_posix.cc
src/core/lib/iomgr/resolve_address_windows.cc
src/core/lib/iomgr/socket_factory_posix.cc
@@ -2718,13 +2706,10 @@ add_library(grpc_unsecure
src/core/lib/iomgr/socket_windows.cc
src/core/lib/iomgr/tcp_client.cc
src/core/lib/iomgr/tcp_client_cfstream.cc
- src/core/lib/iomgr/tcp_client_custom.cc
src/core/lib/iomgr/tcp_client_posix.cc
src/core/lib/iomgr/tcp_client_windows.cc
- src/core/lib/iomgr/tcp_custom.cc
src/core/lib/iomgr/tcp_posix.cc
src/core/lib/iomgr/tcp_server.cc
- src/core/lib/iomgr/tcp_server_custom.cc
src/core/lib/iomgr/tcp_server_posix.cc
src/core/lib/iomgr/tcp_server_utils_posix_common.cc
src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc
@@ -2733,7 +2718,6 @@ add_library(grpc_unsecure
src/core/lib/iomgr/tcp_windows.cc
src/core/lib/iomgr/time_averaged_stats.cc
src/core/lib/iomgr/timer.cc
- src/core/lib/iomgr/timer_custom.cc
src/core/lib/iomgr/timer_generic.cc
src/core/lib/iomgr/timer_heap.cc
src/core/lib/iomgr/timer_manager.cc
diff --git a/Makefile b/Makefile
index 8b742100131..0d021a1370d 100644
--- a/Makefile
+++ b/Makefile
@@ -1488,7 +1488,6 @@ LIBGRPC_SRC = \
src/core/lib/iomgr/internal_errqueue.cc \
src/core/lib/iomgr/iocp_windows.cc \
src/core/lib/iomgr/iomgr.cc \
- src/core/lib/iomgr/iomgr_custom.cc \
src/core/lib/iomgr/iomgr_internal.cc \
src/core/lib/iomgr/iomgr_posix.cc \
src/core/lib/iomgr/iomgr_posix_cfstream.cc \
@@ -1498,13 +1497,10 @@ LIBGRPC_SRC = \
src/core/lib/iomgr/lockfree_event.cc \
src/core/lib/iomgr/polling_entity.cc \
src/core/lib/iomgr/pollset.cc \
- src/core/lib/iomgr/pollset_custom.cc \
src/core/lib/iomgr/pollset_set.cc \
- src/core/lib/iomgr/pollset_set_custom.cc \
src/core/lib/iomgr/pollset_set_windows.cc \
src/core/lib/iomgr/pollset_windows.cc \
src/core/lib/iomgr/resolve_address.cc \
- src/core/lib/iomgr/resolve_address_custom.cc \
src/core/lib/iomgr/resolve_address_posix.cc \
src/core/lib/iomgr/resolve_address_windows.cc \
src/core/lib/iomgr/socket_factory_posix.cc \
@@ -1516,13 +1512,10 @@ LIBGRPC_SRC = \
src/core/lib/iomgr/socket_windows.cc \
src/core/lib/iomgr/tcp_client.cc \
src/core/lib/iomgr/tcp_client_cfstream.cc \
- src/core/lib/iomgr/tcp_client_custom.cc \
src/core/lib/iomgr/tcp_client_posix.cc \
src/core/lib/iomgr/tcp_client_windows.cc \
- src/core/lib/iomgr/tcp_custom.cc \
src/core/lib/iomgr/tcp_posix.cc \
src/core/lib/iomgr/tcp_server.cc \
- src/core/lib/iomgr/tcp_server_custom.cc \
src/core/lib/iomgr/tcp_server_posix.cc \
src/core/lib/iomgr/tcp_server_utils_posix_common.cc \
src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc \
@@ -1531,7 +1524,6 @@ LIBGRPC_SRC = \
src/core/lib/iomgr/tcp_windows.cc \
src/core/lib/iomgr/time_averaged_stats.cc \
src/core/lib/iomgr/timer.cc \
- src/core/lib/iomgr/timer_custom.cc \
src/core/lib/iomgr/timer_generic.cc \
src/core/lib/iomgr/timer_heap.cc \
src/core/lib/iomgr/timer_manager.cc \
@@ -1984,7 +1976,6 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/iomgr/internal_errqueue.cc \
src/core/lib/iomgr/iocp_windows.cc \
src/core/lib/iomgr/iomgr.cc \
- src/core/lib/iomgr/iomgr_custom.cc \
src/core/lib/iomgr/iomgr_internal.cc \
src/core/lib/iomgr/iomgr_posix.cc \
src/core/lib/iomgr/iomgr_posix_cfstream.cc \
@@ -1994,13 +1985,10 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/iomgr/lockfree_event.cc \
src/core/lib/iomgr/polling_entity.cc \
src/core/lib/iomgr/pollset.cc \
- src/core/lib/iomgr/pollset_custom.cc \
src/core/lib/iomgr/pollset_set.cc \
- src/core/lib/iomgr/pollset_set_custom.cc \
src/core/lib/iomgr/pollset_set_windows.cc \
src/core/lib/iomgr/pollset_windows.cc \
src/core/lib/iomgr/resolve_address.cc \
- src/core/lib/iomgr/resolve_address_custom.cc \
src/core/lib/iomgr/resolve_address_posix.cc \
src/core/lib/iomgr/resolve_address_windows.cc \
src/core/lib/iomgr/socket_factory_posix.cc \
@@ -2012,13 +2000,10 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/iomgr/socket_windows.cc \
src/core/lib/iomgr/tcp_client.cc \
src/core/lib/iomgr/tcp_client_cfstream.cc \
- src/core/lib/iomgr/tcp_client_custom.cc \
src/core/lib/iomgr/tcp_client_posix.cc \
src/core/lib/iomgr/tcp_client_windows.cc \
- src/core/lib/iomgr/tcp_custom.cc \
src/core/lib/iomgr/tcp_posix.cc \
src/core/lib/iomgr/tcp_server.cc \
- src/core/lib/iomgr/tcp_server_custom.cc \
src/core/lib/iomgr/tcp_server_posix.cc \
src/core/lib/iomgr/tcp_server_utils_posix_common.cc \
src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc \
@@ -2027,7 +2012,6 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/iomgr/tcp_windows.cc \
src/core/lib/iomgr/time_averaged_stats.cc \
src/core/lib/iomgr/timer.cc \
- src/core/lib/iomgr/timer_custom.cc \
src/core/lib/iomgr/timer_generic.cc \
src/core/lib/iomgr/timer_heap.cc \
src/core/lib/iomgr/timer_manager.cc \
diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml
index 7feb237093c..0e6a85e1a6e 100644
--- a/build_autogenerated.yaml
+++ b/build_autogenerated.yaml
@@ -880,7 +880,6 @@ libs:
- src/core/lib/iomgr/internal_errqueue.h
- src/core/lib/iomgr/iocp_windows.h
- src/core/lib/iomgr/iomgr.h
- - src/core/lib/iomgr/iomgr_custom.h
- src/core/lib/iomgr/iomgr_internal.h
- src/core/lib/iomgr/is_epollexclusive_available.h
- src/core/lib/iomgr/load_file.h
@@ -888,15 +887,12 @@ libs:
- src/core/lib/iomgr/nameser.h
- src/core/lib/iomgr/polling_entity.h
- src/core/lib/iomgr/pollset.h
- - src/core/lib/iomgr/pollset_custom.h
- src/core/lib/iomgr/pollset_set.h
- - src/core/lib/iomgr/pollset_set_custom.h
- src/core/lib/iomgr/pollset_set_windows.h
- src/core/lib/iomgr/pollset_windows.h
- src/core/lib/iomgr/port.h
- src/core/lib/iomgr/python_util.h
- src/core/lib/iomgr/resolve_address.h
- - src/core/lib/iomgr/resolve_address_custom.h
- src/core/lib/iomgr/resolve_address_impl.h
- src/core/lib/iomgr/resolve_address_posix.h
- src/core/lib/iomgr/resolve_address_windows.h
@@ -912,14 +908,12 @@ libs:
- src/core/lib/iomgr/sys_epoll_wrapper.h
- src/core/lib/iomgr/tcp_client.h
- src/core/lib/iomgr/tcp_client_posix.h
- - src/core/lib/iomgr/tcp_custom.h
- src/core/lib/iomgr/tcp_posix.h
- src/core/lib/iomgr/tcp_server.h
- src/core/lib/iomgr/tcp_server_utils_posix.h
- src/core/lib/iomgr/tcp_windows.h
- src/core/lib/iomgr/time_averaged_stats.h
- src/core/lib/iomgr/timer.h
- - src/core/lib/iomgr/timer_custom.h
- src/core/lib/iomgr/timer_generic.h
- src/core/lib/iomgr/timer_heap.h
- src/core/lib/iomgr/timer_manager.h
@@ -1541,7 +1535,6 @@ libs:
- src/core/lib/iomgr/internal_errqueue.cc
- src/core/lib/iomgr/iocp_windows.cc
- src/core/lib/iomgr/iomgr.cc
- - src/core/lib/iomgr/iomgr_custom.cc
- src/core/lib/iomgr/iomgr_internal.cc
- src/core/lib/iomgr/iomgr_posix.cc
- src/core/lib/iomgr/iomgr_posix_cfstream.cc
@@ -1551,13 +1544,10 @@ libs:
- src/core/lib/iomgr/lockfree_event.cc
- src/core/lib/iomgr/polling_entity.cc
- src/core/lib/iomgr/pollset.cc
- - src/core/lib/iomgr/pollset_custom.cc
- src/core/lib/iomgr/pollset_set.cc
- - src/core/lib/iomgr/pollset_set_custom.cc
- src/core/lib/iomgr/pollset_set_windows.cc
- src/core/lib/iomgr/pollset_windows.cc
- src/core/lib/iomgr/resolve_address.cc
- - src/core/lib/iomgr/resolve_address_custom.cc
- src/core/lib/iomgr/resolve_address_posix.cc
- src/core/lib/iomgr/resolve_address_windows.cc
- src/core/lib/iomgr/socket_factory_posix.cc
@@ -1569,13 +1559,10 @@ libs:
- src/core/lib/iomgr/socket_windows.cc
- src/core/lib/iomgr/tcp_client.cc
- src/core/lib/iomgr/tcp_client_cfstream.cc
- - src/core/lib/iomgr/tcp_client_custom.cc
- src/core/lib/iomgr/tcp_client_posix.cc
- src/core/lib/iomgr/tcp_client_windows.cc
- - src/core/lib/iomgr/tcp_custom.cc
- src/core/lib/iomgr/tcp_posix.cc
- src/core/lib/iomgr/tcp_server.cc
- - src/core/lib/iomgr/tcp_server_custom.cc
- src/core/lib/iomgr/tcp_server_posix.cc
- src/core/lib/iomgr/tcp_server_utils_posix_common.cc
- src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc
@@ -1584,7 +1571,6 @@ libs:
- src/core/lib/iomgr/tcp_windows.cc
- src/core/lib/iomgr/time_averaged_stats.cc
- src/core/lib/iomgr/timer.cc
- - src/core/lib/iomgr/timer_custom.cc
- src/core/lib/iomgr/timer_generic.cc
- src/core/lib/iomgr/timer_heap.cc
- src/core/lib/iomgr/timer_manager.cc
@@ -2057,7 +2043,6 @@ libs:
- src/core/lib/iomgr/internal_errqueue.h
- src/core/lib/iomgr/iocp_windows.h
- src/core/lib/iomgr/iomgr.h
- - src/core/lib/iomgr/iomgr_custom.h
- src/core/lib/iomgr/iomgr_internal.h
- src/core/lib/iomgr/is_epollexclusive_available.h
- src/core/lib/iomgr/load_file.h
@@ -2065,15 +2050,12 @@ libs:
- src/core/lib/iomgr/nameser.h
- src/core/lib/iomgr/polling_entity.h
- src/core/lib/iomgr/pollset.h
- - src/core/lib/iomgr/pollset_custom.h
- src/core/lib/iomgr/pollset_set.h
- - src/core/lib/iomgr/pollset_set_custom.h
- src/core/lib/iomgr/pollset_set_windows.h
- src/core/lib/iomgr/pollset_windows.h
- src/core/lib/iomgr/port.h
- src/core/lib/iomgr/python_util.h
- src/core/lib/iomgr/resolve_address.h
- - src/core/lib/iomgr/resolve_address_custom.h
- src/core/lib/iomgr/resolve_address_impl.h
- src/core/lib/iomgr/resolve_address_posix.h
- src/core/lib/iomgr/resolve_address_windows.h
@@ -2089,14 +2071,12 @@ libs:
- src/core/lib/iomgr/sys_epoll_wrapper.h
- src/core/lib/iomgr/tcp_client.h
- src/core/lib/iomgr/tcp_client_posix.h
- - src/core/lib/iomgr/tcp_custom.h
- src/core/lib/iomgr/tcp_posix.h
- src/core/lib/iomgr/tcp_server.h
- src/core/lib/iomgr/tcp_server_utils_posix.h
- src/core/lib/iomgr/tcp_windows.h
- src/core/lib/iomgr/time_averaged_stats.h
- src/core/lib/iomgr/timer.h
- - src/core/lib/iomgr/timer_custom.h
- src/core/lib/iomgr/timer_generic.h
- src/core/lib/iomgr/timer_heap.h
- src/core/lib/iomgr/timer_manager.h
@@ -2372,7 +2352,6 @@ libs:
- src/core/lib/iomgr/internal_errqueue.cc
- src/core/lib/iomgr/iocp_windows.cc
- src/core/lib/iomgr/iomgr.cc
- - src/core/lib/iomgr/iomgr_custom.cc
- src/core/lib/iomgr/iomgr_internal.cc
- src/core/lib/iomgr/iomgr_posix.cc
- src/core/lib/iomgr/iomgr_posix_cfstream.cc
@@ -2382,13 +2361,10 @@ libs:
- src/core/lib/iomgr/lockfree_event.cc
- src/core/lib/iomgr/polling_entity.cc
- src/core/lib/iomgr/pollset.cc
- - src/core/lib/iomgr/pollset_custom.cc
- src/core/lib/iomgr/pollset_set.cc
- - src/core/lib/iomgr/pollset_set_custom.cc
- src/core/lib/iomgr/pollset_set_windows.cc
- src/core/lib/iomgr/pollset_windows.cc
- src/core/lib/iomgr/resolve_address.cc
- - src/core/lib/iomgr/resolve_address_custom.cc
- src/core/lib/iomgr/resolve_address_posix.cc
- src/core/lib/iomgr/resolve_address_windows.cc
- src/core/lib/iomgr/socket_factory_posix.cc
@@ -2400,13 +2376,10 @@ libs:
- src/core/lib/iomgr/socket_windows.cc
- src/core/lib/iomgr/tcp_client.cc
- src/core/lib/iomgr/tcp_client_cfstream.cc
- - src/core/lib/iomgr/tcp_client_custom.cc
- src/core/lib/iomgr/tcp_client_posix.cc
- src/core/lib/iomgr/tcp_client_windows.cc
- - src/core/lib/iomgr/tcp_custom.cc
- src/core/lib/iomgr/tcp_posix.cc
- src/core/lib/iomgr/tcp_server.cc
- - src/core/lib/iomgr/tcp_server_custom.cc
- src/core/lib/iomgr/tcp_server_posix.cc
- src/core/lib/iomgr/tcp_server_utils_posix_common.cc
- src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc
@@ -2415,7 +2388,6 @@ libs:
- src/core/lib/iomgr/tcp_windows.cc
- src/core/lib/iomgr/time_averaged_stats.cc
- src/core/lib/iomgr/timer.cc
- - src/core/lib/iomgr/timer_custom.cc
- src/core/lib/iomgr/timer_generic.cc
- src/core/lib/iomgr/timer_heap.cc
- src/core/lib/iomgr/timer_manager.cc
diff --git a/config.m4 b/config.m4
index b8f82ef573c..c259e2d0948 100644
--- a/config.m4
+++ b/config.m4
@@ -548,7 +548,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/iomgr/internal_errqueue.cc \
src/core/lib/iomgr/iocp_windows.cc \
src/core/lib/iomgr/iomgr.cc \
- src/core/lib/iomgr/iomgr_custom.cc \
src/core/lib/iomgr/iomgr_internal.cc \
src/core/lib/iomgr/iomgr_posix.cc \
src/core/lib/iomgr/iomgr_posix_cfstream.cc \
@@ -558,13 +557,10 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/iomgr/lockfree_event.cc \
src/core/lib/iomgr/polling_entity.cc \
src/core/lib/iomgr/pollset.cc \
- src/core/lib/iomgr/pollset_custom.cc \
src/core/lib/iomgr/pollset_set.cc \
- src/core/lib/iomgr/pollset_set_custom.cc \
src/core/lib/iomgr/pollset_set_windows.cc \
src/core/lib/iomgr/pollset_windows.cc \
src/core/lib/iomgr/resolve_address.cc \
- src/core/lib/iomgr/resolve_address_custom.cc \
src/core/lib/iomgr/resolve_address_posix.cc \
src/core/lib/iomgr/resolve_address_windows.cc \
src/core/lib/iomgr/socket_factory_posix.cc \
@@ -576,13 +572,10 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/iomgr/socket_windows.cc \
src/core/lib/iomgr/tcp_client.cc \
src/core/lib/iomgr/tcp_client_cfstream.cc \
- src/core/lib/iomgr/tcp_client_custom.cc \
src/core/lib/iomgr/tcp_client_posix.cc \
src/core/lib/iomgr/tcp_client_windows.cc \
- src/core/lib/iomgr/tcp_custom.cc \
src/core/lib/iomgr/tcp_posix.cc \
src/core/lib/iomgr/tcp_server.cc \
- src/core/lib/iomgr/tcp_server_custom.cc \
src/core/lib/iomgr/tcp_server_posix.cc \
src/core/lib/iomgr/tcp_server_utils_posix_common.cc \
src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc \
@@ -591,7 +584,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/iomgr/tcp_windows.cc \
src/core/lib/iomgr/time_averaged_stats.cc \
src/core/lib/iomgr/timer.cc \
- src/core/lib/iomgr/timer_custom.cc \
src/core/lib/iomgr/timer_generic.cc \
src/core/lib/iomgr/timer_heap.cc \
src/core/lib/iomgr/timer_manager.cc \
diff --git a/config.w32 b/config.w32
index a03c8886221..b0adc249bf8 100644
--- a/config.w32
+++ b/config.w32
@@ -514,7 +514,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\iomgr\\internal_errqueue.cc " +
"src\\core\\lib\\iomgr\\iocp_windows.cc " +
"src\\core\\lib\\iomgr\\iomgr.cc " +
- "src\\core\\lib\\iomgr\\iomgr_custom.cc " +
"src\\core\\lib\\iomgr\\iomgr_internal.cc " +
"src\\core\\lib\\iomgr\\iomgr_posix.cc " +
"src\\core\\lib\\iomgr\\iomgr_posix_cfstream.cc " +
@@ -524,13 +523,10 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\iomgr\\lockfree_event.cc " +
"src\\core\\lib\\iomgr\\polling_entity.cc " +
"src\\core\\lib\\iomgr\\pollset.cc " +
- "src\\core\\lib\\iomgr\\pollset_custom.cc " +
"src\\core\\lib\\iomgr\\pollset_set.cc " +
- "src\\core\\lib\\iomgr\\pollset_set_custom.cc " +
"src\\core\\lib\\iomgr\\pollset_set_windows.cc " +
"src\\core\\lib\\iomgr\\pollset_windows.cc " +
"src\\core\\lib\\iomgr\\resolve_address.cc " +
- "src\\core\\lib\\iomgr\\resolve_address_custom.cc " +
"src\\core\\lib\\iomgr\\resolve_address_posix.cc " +
"src\\core\\lib\\iomgr\\resolve_address_windows.cc " +
"src\\core\\lib\\iomgr\\socket_factory_posix.cc " +
@@ -542,13 +538,10 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\iomgr\\socket_windows.cc " +
"src\\core\\lib\\iomgr\\tcp_client.cc " +
"src\\core\\lib\\iomgr\\tcp_client_cfstream.cc " +
- "src\\core\\lib\\iomgr\\tcp_client_custom.cc " +
"src\\core\\lib\\iomgr\\tcp_client_posix.cc " +
"src\\core\\lib\\iomgr\\tcp_client_windows.cc " +
- "src\\core\\lib\\iomgr\\tcp_custom.cc " +
"src\\core\\lib\\iomgr\\tcp_posix.cc " +
"src\\core\\lib\\iomgr\\tcp_server.cc " +
- "src\\core\\lib\\iomgr\\tcp_server_custom.cc " +
"src\\core\\lib\\iomgr\\tcp_server_posix.cc " +
"src\\core\\lib\\iomgr\\tcp_server_utils_posix_common.cc " +
"src\\core\\lib\\iomgr\\tcp_server_utils_posix_ifaddrs.cc " +
@@ -557,7 +550,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\iomgr\\tcp_windows.cc " +
"src\\core\\lib\\iomgr\\time_averaged_stats.cc " +
"src\\core\\lib\\iomgr\\timer.cc " +
- "src\\core\\lib\\iomgr\\timer_custom.cc " +
"src\\core\\lib\\iomgr\\timer_generic.cc " +
"src\\core\\lib\\iomgr\\timer_heap.cc " +
"src\\core\\lib\\iomgr\\timer_manager.cc " +
diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec
index a696ec18e5a..2ad1f4b1954 100644
--- a/gRPC-C++.podspec
+++ b/gRPC-C++.podspec
@@ -731,7 +731,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/internal_errqueue.h',
'src/core/lib/iomgr/iocp_windows.h',
'src/core/lib/iomgr/iomgr.h',
- 'src/core/lib/iomgr/iomgr_custom.h',
'src/core/lib/iomgr/iomgr_internal.h',
'src/core/lib/iomgr/is_epollexclusive_available.h',
'src/core/lib/iomgr/load_file.h',
@@ -739,15 +738,12 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/nameser.h',
'src/core/lib/iomgr/polling_entity.h',
'src/core/lib/iomgr/pollset.h',
- 'src/core/lib/iomgr/pollset_custom.h',
'src/core/lib/iomgr/pollset_set.h',
- 'src/core/lib/iomgr/pollset_set_custom.h',
'src/core/lib/iomgr/pollset_set_windows.h',
'src/core/lib/iomgr/pollset_windows.h',
'src/core/lib/iomgr/port.h',
'src/core/lib/iomgr/python_util.h',
'src/core/lib/iomgr/resolve_address.h',
- 'src/core/lib/iomgr/resolve_address_custom.h',
'src/core/lib/iomgr/resolve_address_impl.h',
'src/core/lib/iomgr/resolve_address_posix.h',
'src/core/lib/iomgr/resolve_address_windows.h',
@@ -763,14 +759,12 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/sys_epoll_wrapper.h',
'src/core/lib/iomgr/tcp_client.h',
'src/core/lib/iomgr/tcp_client_posix.h',
- 'src/core/lib/iomgr/tcp_custom.h',
'src/core/lib/iomgr/tcp_posix.h',
'src/core/lib/iomgr/tcp_server.h',
'src/core/lib/iomgr/tcp_server_utils_posix.h',
'src/core/lib/iomgr/tcp_windows.h',
'src/core/lib/iomgr/time_averaged_stats.h',
'src/core/lib/iomgr/timer.h',
- 'src/core/lib/iomgr/timer_custom.h',
'src/core/lib/iomgr/timer_generic.h',
'src/core/lib/iomgr/timer_heap.h',
'src/core/lib/iomgr/timer_manager.h',
@@ -1529,7 +1523,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/internal_errqueue.h',
'src/core/lib/iomgr/iocp_windows.h',
'src/core/lib/iomgr/iomgr.h',
- 'src/core/lib/iomgr/iomgr_custom.h',
'src/core/lib/iomgr/iomgr_internal.h',
'src/core/lib/iomgr/is_epollexclusive_available.h',
'src/core/lib/iomgr/load_file.h',
@@ -1537,15 +1530,12 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/nameser.h',
'src/core/lib/iomgr/polling_entity.h',
'src/core/lib/iomgr/pollset.h',
- 'src/core/lib/iomgr/pollset_custom.h',
'src/core/lib/iomgr/pollset_set.h',
- 'src/core/lib/iomgr/pollset_set_custom.h',
'src/core/lib/iomgr/pollset_set_windows.h',
'src/core/lib/iomgr/pollset_windows.h',
'src/core/lib/iomgr/port.h',
'src/core/lib/iomgr/python_util.h',
'src/core/lib/iomgr/resolve_address.h',
- 'src/core/lib/iomgr/resolve_address_custom.h',
'src/core/lib/iomgr/resolve_address_impl.h',
'src/core/lib/iomgr/resolve_address_posix.h',
'src/core/lib/iomgr/resolve_address_windows.h',
@@ -1561,14 +1551,12 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/sys_epoll_wrapper.h',
'src/core/lib/iomgr/tcp_client.h',
'src/core/lib/iomgr/tcp_client_posix.h',
- 'src/core/lib/iomgr/tcp_custom.h',
'src/core/lib/iomgr/tcp_posix.h',
'src/core/lib/iomgr/tcp_server.h',
'src/core/lib/iomgr/tcp_server_utils_posix.h',
'src/core/lib/iomgr/tcp_windows.h',
'src/core/lib/iomgr/time_averaged_stats.h',
'src/core/lib/iomgr/timer.h',
- 'src/core/lib/iomgr/timer_custom.h',
'src/core/lib/iomgr/timer_generic.h',
'src/core/lib/iomgr/timer_heap.h',
'src/core/lib/iomgr/timer_manager.h',
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index 1a845d5a6b8..20876379203 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -1178,8 +1178,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/iocp_windows.h',
'src/core/lib/iomgr/iomgr.cc',
'src/core/lib/iomgr/iomgr.h',
- 'src/core/lib/iomgr/iomgr_custom.cc',
- 'src/core/lib/iomgr/iomgr_custom.h',
'src/core/lib/iomgr/iomgr_internal.cc',
'src/core/lib/iomgr/iomgr_internal.h',
'src/core/lib/iomgr/iomgr_posix.cc',
@@ -1196,12 +1194,8 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/polling_entity.h',
'src/core/lib/iomgr/pollset.cc',
'src/core/lib/iomgr/pollset.h',
- 'src/core/lib/iomgr/pollset_custom.cc',
- 'src/core/lib/iomgr/pollset_custom.h',
'src/core/lib/iomgr/pollset_set.cc',
'src/core/lib/iomgr/pollset_set.h',
- 'src/core/lib/iomgr/pollset_set_custom.cc',
- 'src/core/lib/iomgr/pollset_set_custom.h',
'src/core/lib/iomgr/pollset_set_windows.cc',
'src/core/lib/iomgr/pollset_set_windows.h',
'src/core/lib/iomgr/pollset_windows.cc',
@@ -1210,8 +1204,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/python_util.h',
'src/core/lib/iomgr/resolve_address.cc',
'src/core/lib/iomgr/resolve_address.h',
- 'src/core/lib/iomgr/resolve_address_custom.cc',
- 'src/core/lib/iomgr/resolve_address_custom.h',
'src/core/lib/iomgr/resolve_address_impl.h',
'src/core/lib/iomgr/resolve_address_posix.cc',
'src/core/lib/iomgr/resolve_address_posix.h',
@@ -1237,17 +1229,13 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/tcp_client.cc',
'src/core/lib/iomgr/tcp_client.h',
'src/core/lib/iomgr/tcp_client_cfstream.cc',
- 'src/core/lib/iomgr/tcp_client_custom.cc',
'src/core/lib/iomgr/tcp_client_posix.cc',
'src/core/lib/iomgr/tcp_client_posix.h',
'src/core/lib/iomgr/tcp_client_windows.cc',
- 'src/core/lib/iomgr/tcp_custom.cc',
- 'src/core/lib/iomgr/tcp_custom.h',
'src/core/lib/iomgr/tcp_posix.cc',
'src/core/lib/iomgr/tcp_posix.h',
'src/core/lib/iomgr/tcp_server.cc',
'src/core/lib/iomgr/tcp_server.h',
- 'src/core/lib/iomgr/tcp_server_custom.cc',
'src/core/lib/iomgr/tcp_server_posix.cc',
'src/core/lib/iomgr/tcp_server_utils_posix.h',
'src/core/lib/iomgr/tcp_server_utils_posix_common.cc',
@@ -1260,8 +1248,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/time_averaged_stats.h',
'src/core/lib/iomgr/timer.cc',
'src/core/lib/iomgr/timer.h',
- 'src/core/lib/iomgr/timer_custom.cc',
- 'src/core/lib/iomgr/timer_custom.h',
'src/core/lib/iomgr/timer_generic.cc',
'src/core/lib/iomgr/timer_generic.h',
'src/core/lib/iomgr/timer_heap.cc',
@@ -2127,7 +2113,6 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/internal_errqueue.h',
'src/core/lib/iomgr/iocp_windows.h',
'src/core/lib/iomgr/iomgr.h',
- 'src/core/lib/iomgr/iomgr_custom.h',
'src/core/lib/iomgr/iomgr_internal.h',
'src/core/lib/iomgr/is_epollexclusive_available.h',
'src/core/lib/iomgr/load_file.h',
@@ -2135,15 +2120,12 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/nameser.h',
'src/core/lib/iomgr/polling_entity.h',
'src/core/lib/iomgr/pollset.h',
- 'src/core/lib/iomgr/pollset_custom.h',
'src/core/lib/iomgr/pollset_set.h',
- 'src/core/lib/iomgr/pollset_set_custom.h',
'src/core/lib/iomgr/pollset_set_windows.h',
'src/core/lib/iomgr/pollset_windows.h',
'src/core/lib/iomgr/port.h',
'src/core/lib/iomgr/python_util.h',
'src/core/lib/iomgr/resolve_address.h',
- 'src/core/lib/iomgr/resolve_address_custom.h',
'src/core/lib/iomgr/resolve_address_impl.h',
'src/core/lib/iomgr/resolve_address_posix.h',
'src/core/lib/iomgr/resolve_address_windows.h',
@@ -2159,14 +2141,12 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/sys_epoll_wrapper.h',
'src/core/lib/iomgr/tcp_client.h',
'src/core/lib/iomgr/tcp_client_posix.h',
- 'src/core/lib/iomgr/tcp_custom.h',
'src/core/lib/iomgr/tcp_posix.h',
'src/core/lib/iomgr/tcp_server.h',
'src/core/lib/iomgr/tcp_server_utils_posix.h',
'src/core/lib/iomgr/tcp_windows.h',
'src/core/lib/iomgr/time_averaged_stats.h',
'src/core/lib/iomgr/timer.h',
- 'src/core/lib/iomgr/timer_custom.h',
'src/core/lib/iomgr/timer_generic.h',
'src/core/lib/iomgr/timer_heap.h',
'src/core/lib/iomgr/timer_manager.h',
diff --git a/grpc.gemspec b/grpc.gemspec
index 199d7d81ff5..1cbd02fd4d6 100644
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -1097,8 +1097,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/iomgr/iocp_windows.h )
s.files += %w( src/core/lib/iomgr/iomgr.cc )
s.files += %w( src/core/lib/iomgr/iomgr.h )
- s.files += %w( src/core/lib/iomgr/iomgr_custom.cc )
- s.files += %w( src/core/lib/iomgr/iomgr_custom.h )
s.files += %w( src/core/lib/iomgr/iomgr_internal.cc )
s.files += %w( src/core/lib/iomgr/iomgr_internal.h )
s.files += %w( src/core/lib/iomgr/iomgr_posix.cc )
@@ -1115,12 +1113,8 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/iomgr/polling_entity.h )
s.files += %w( src/core/lib/iomgr/pollset.cc )
s.files += %w( src/core/lib/iomgr/pollset.h )
- s.files += %w( src/core/lib/iomgr/pollset_custom.cc )
- s.files += %w( src/core/lib/iomgr/pollset_custom.h )
s.files += %w( src/core/lib/iomgr/pollset_set.cc )
s.files += %w( src/core/lib/iomgr/pollset_set.h )
- s.files += %w( src/core/lib/iomgr/pollset_set_custom.cc )
- s.files += %w( src/core/lib/iomgr/pollset_set_custom.h )
s.files += %w( src/core/lib/iomgr/pollset_set_windows.cc )
s.files += %w( src/core/lib/iomgr/pollset_set_windows.h )
s.files += %w( src/core/lib/iomgr/pollset_windows.cc )
@@ -1129,8 +1123,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/iomgr/python_util.h )
s.files += %w( src/core/lib/iomgr/resolve_address.cc )
s.files += %w( src/core/lib/iomgr/resolve_address.h )
- s.files += %w( src/core/lib/iomgr/resolve_address_custom.cc )
- s.files += %w( src/core/lib/iomgr/resolve_address_custom.h )
s.files += %w( src/core/lib/iomgr/resolve_address_impl.h )
s.files += %w( src/core/lib/iomgr/resolve_address_posix.cc )
s.files += %w( src/core/lib/iomgr/resolve_address_posix.h )
@@ -1156,17 +1148,13 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/iomgr/tcp_client.cc )
s.files += %w( src/core/lib/iomgr/tcp_client.h )
s.files += %w( src/core/lib/iomgr/tcp_client_cfstream.cc )
- s.files += %w( src/core/lib/iomgr/tcp_client_custom.cc )
s.files += %w( src/core/lib/iomgr/tcp_client_posix.cc )
s.files += %w( src/core/lib/iomgr/tcp_client_posix.h )
s.files += %w( src/core/lib/iomgr/tcp_client_windows.cc )
- s.files += %w( src/core/lib/iomgr/tcp_custom.cc )
- s.files += %w( src/core/lib/iomgr/tcp_custom.h )
s.files += %w( src/core/lib/iomgr/tcp_posix.cc )
s.files += %w( src/core/lib/iomgr/tcp_posix.h )
s.files += %w( src/core/lib/iomgr/tcp_server.cc )
s.files += %w( src/core/lib/iomgr/tcp_server.h )
- s.files += %w( src/core/lib/iomgr/tcp_server_custom.cc )
s.files += %w( src/core/lib/iomgr/tcp_server_posix.cc )
s.files += %w( src/core/lib/iomgr/tcp_server_utils_posix.h )
s.files += %w( src/core/lib/iomgr/tcp_server_utils_posix_common.cc )
@@ -1179,8 +1167,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/iomgr/time_averaged_stats.h )
s.files += %w( src/core/lib/iomgr/timer.cc )
s.files += %w( src/core/lib/iomgr/timer.h )
- s.files += %w( src/core/lib/iomgr/timer_custom.cc )
- s.files += %w( src/core/lib/iomgr/timer_custom.h )
s.files += %w( src/core/lib/iomgr/timer_generic.cc )
s.files += %w( src/core/lib/iomgr/timer_generic.h )
s.files += %w( src/core/lib/iomgr/timer_heap.cc )
diff --git a/grpc.gyp b/grpc.gyp
index d6e516e3cf9..bc67ee86fa3 100644
--- a/grpc.gyp
+++ b/grpc.gyp
@@ -944,7 +944,6 @@
'src/core/lib/iomgr/internal_errqueue.cc',
'src/core/lib/iomgr/iocp_windows.cc',
'src/core/lib/iomgr/iomgr.cc',
- 'src/core/lib/iomgr/iomgr_custom.cc',
'src/core/lib/iomgr/iomgr_internal.cc',
'src/core/lib/iomgr/iomgr_posix.cc',
'src/core/lib/iomgr/iomgr_posix_cfstream.cc',
@@ -954,13 +953,10 @@
'src/core/lib/iomgr/lockfree_event.cc',
'src/core/lib/iomgr/polling_entity.cc',
'src/core/lib/iomgr/pollset.cc',
- 'src/core/lib/iomgr/pollset_custom.cc',
'src/core/lib/iomgr/pollset_set.cc',
- 'src/core/lib/iomgr/pollset_set_custom.cc',
'src/core/lib/iomgr/pollset_set_windows.cc',
'src/core/lib/iomgr/pollset_windows.cc',
'src/core/lib/iomgr/resolve_address.cc',
- 'src/core/lib/iomgr/resolve_address_custom.cc',
'src/core/lib/iomgr/resolve_address_posix.cc',
'src/core/lib/iomgr/resolve_address_windows.cc',
'src/core/lib/iomgr/socket_factory_posix.cc',
@@ -972,13 +968,10 @@
'src/core/lib/iomgr/socket_windows.cc',
'src/core/lib/iomgr/tcp_client.cc',
'src/core/lib/iomgr/tcp_client_cfstream.cc',
- 'src/core/lib/iomgr/tcp_client_custom.cc',
'src/core/lib/iomgr/tcp_client_posix.cc',
'src/core/lib/iomgr/tcp_client_windows.cc',
- 'src/core/lib/iomgr/tcp_custom.cc',
'src/core/lib/iomgr/tcp_posix.cc',
'src/core/lib/iomgr/tcp_server.cc',
- 'src/core/lib/iomgr/tcp_server_custom.cc',
'src/core/lib/iomgr/tcp_server_posix.cc',
'src/core/lib/iomgr/tcp_server_utils_posix_common.cc',
'src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc',
@@ -987,7 +980,6 @@
'src/core/lib/iomgr/tcp_windows.cc',
'src/core/lib/iomgr/time_averaged_stats.cc',
'src/core/lib/iomgr/timer.cc',
- 'src/core/lib/iomgr/timer_custom.cc',
'src/core/lib/iomgr/timer_generic.cc',
'src/core/lib/iomgr/timer_heap.cc',
'src/core/lib/iomgr/timer_manager.cc',
@@ -1413,7 +1405,6 @@
'src/core/lib/iomgr/internal_errqueue.cc',
'src/core/lib/iomgr/iocp_windows.cc',
'src/core/lib/iomgr/iomgr.cc',
- 'src/core/lib/iomgr/iomgr_custom.cc',
'src/core/lib/iomgr/iomgr_internal.cc',
'src/core/lib/iomgr/iomgr_posix.cc',
'src/core/lib/iomgr/iomgr_posix_cfstream.cc',
@@ -1423,13 +1414,10 @@
'src/core/lib/iomgr/lockfree_event.cc',
'src/core/lib/iomgr/polling_entity.cc',
'src/core/lib/iomgr/pollset.cc',
- 'src/core/lib/iomgr/pollset_custom.cc',
'src/core/lib/iomgr/pollset_set.cc',
- 'src/core/lib/iomgr/pollset_set_custom.cc',
'src/core/lib/iomgr/pollset_set_windows.cc',
'src/core/lib/iomgr/pollset_windows.cc',
'src/core/lib/iomgr/resolve_address.cc',
- 'src/core/lib/iomgr/resolve_address_custom.cc',
'src/core/lib/iomgr/resolve_address_posix.cc',
'src/core/lib/iomgr/resolve_address_windows.cc',
'src/core/lib/iomgr/socket_factory_posix.cc',
@@ -1441,13 +1429,10 @@
'src/core/lib/iomgr/socket_windows.cc',
'src/core/lib/iomgr/tcp_client.cc',
'src/core/lib/iomgr/tcp_client_cfstream.cc',
- 'src/core/lib/iomgr/tcp_client_custom.cc',
'src/core/lib/iomgr/tcp_client_posix.cc',
'src/core/lib/iomgr/tcp_client_windows.cc',
- 'src/core/lib/iomgr/tcp_custom.cc',
'src/core/lib/iomgr/tcp_posix.cc',
'src/core/lib/iomgr/tcp_server.cc',
- 'src/core/lib/iomgr/tcp_server_custom.cc',
'src/core/lib/iomgr/tcp_server_posix.cc',
'src/core/lib/iomgr/tcp_server_utils_posix_common.cc',
'src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc',
@@ -1456,7 +1441,6 @@
'src/core/lib/iomgr/tcp_windows.cc',
'src/core/lib/iomgr/time_averaged_stats.cc',
'src/core/lib/iomgr/timer.cc',
- 'src/core/lib/iomgr/timer_custom.cc',
'src/core/lib/iomgr/timer_generic.cc',
'src/core/lib/iomgr/timer_heap.cc',
'src/core/lib/iomgr/timer_manager.cc',
diff --git a/package.xml b/package.xml
index a4ab59c309d..c743721417d 100644
--- a/package.xml
+++ b/package.xml
@@ -1077,8 +1077,6 @@
-
-
@@ -1095,12 +1093,8 @@
-
-
-
-
@@ -1109,8 +1103,6 @@
-
-
@@ -1136,17 +1128,13 @@
-
-
-
-
@@ -1159,8 +1147,6 @@
-
-
diff --git a/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc b/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc
index 27e696cb919..001aabaef0e 100644
--- a/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc
+++ b/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc
@@ -40,7 +40,6 @@
#include "src/core/lib/gpr/string.h"
#include "src/core/lib/gprpp/manual_constructor.h"
#include "src/core/lib/iomgr/gethostname.h"
-#include "src/core/lib/iomgr/iomgr_custom.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/timer.h"
#include "src/core/lib/iomgr/work_serializer.h"
@@ -605,11 +604,8 @@ class AresDNSResolver : public DNSResolver {
};
bool ShouldUseAres(const char* resolver_env) {
- // TODO(lidiz): Remove the "g_custom_iomgr_enabled" flag once c-ares support
- // custom IO managers (e.g. gevent).
- return !g_custom_iomgr_enabled &&
- (resolver_env == nullptr || strlen(resolver_env) == 0 ||
- gpr_stricmp(resolver_env, "ares") == 0);
+ return resolver_env == nullptr || strlen(resolver_env) == 0 ||
+ gpr_stricmp(resolver_env, "ares") == 0;
}
bool g_use_ares_dns_resolver;
diff --git a/src/core/lib/iomgr/iomgr_custom.cc b/src/core/lib/iomgr/iomgr_custom.cc
deleted file mode 100644
index f9acd075269..00000000000
--- a/src/core/lib/iomgr/iomgr_custom.cc
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- *
- * Copyright 2018 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
-
-#include "src/core/lib/iomgr/iomgr_custom.h"
-
-#include
-
-#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/iomgr/executor.h"
-#include "src/core/lib/iomgr/iomgr_internal.h"
-#include "src/core/lib/iomgr/pollset_custom.h"
-#include "src/core/lib/iomgr/pollset_set_custom.h"
-#include "src/core/lib/iomgr/port.h"
-#include "src/core/lib/iomgr/resolve_address_custom.h"
-
-gpr_thd_id g_init_thread;
-
-static void iomgr_platform_init(void) {
- grpc_core::ExecCtx exec_ctx;
- grpc_core::Executor::SetThreadingAll(false);
- g_init_thread = gpr_thd_currentid();
- grpc_pollset_global_init();
-}
-static void iomgr_platform_flush(void) {}
-static void iomgr_platform_shutdown(void) { grpc_pollset_global_shutdown(); }
-static void iomgr_platform_shutdown_background_closure(void) {}
-static bool iomgr_platform_is_any_background_poller_thread(void) {
- return false;
-}
-static bool iomgr_platform_add_closure_to_background_poller(
- grpc_closure* /*closure*/, grpc_error_handle /*error*/) {
- return false;
-}
-
-bool g_custom_iomgr_enabled = false;
-
-static grpc_iomgr_platform_vtable vtable = {
- iomgr_platform_init,
- iomgr_platform_flush,
- iomgr_platform_shutdown,
- iomgr_platform_shutdown_background_closure,
- iomgr_platform_is_any_background_poller_thread,
- iomgr_platform_add_closure_to_background_poller};
-
-void grpc_custom_iomgr_init(grpc_socket_vtable* socket,
- grpc_custom_resolver_vtable* resolver,
- grpc_custom_timer_vtable* timer,
- grpc_custom_poller_vtable* poller) {
- g_custom_iomgr_enabled = true;
- grpc_custom_endpoint_init(socket);
- grpc_custom_timer_init(timer);
- grpc_custom_pollset_init(poller);
- grpc_custom_pollset_set_init();
- grpc_core::CustomDNSResolver::Create(resolver);
- grpc_core::CustomDNSResolver* custom_dns_resolver =
- grpc_core::CustomDNSResolver::Get();
- grpc_core::SetDNSResolver(custom_dns_resolver);
- grpc_set_iomgr_platform_vtable(&vtable);
-}
-
-#ifdef GRPC_CUSTOM_SOCKET
-grpc_iomgr_platform_vtable* grpc_default_iomgr_platform_vtable() {
- return &vtable;
-}
-#endif
diff --git a/src/core/lib/iomgr/iomgr_custom.h b/src/core/lib/iomgr/iomgr_custom.h
deleted file mode 100644
index 36b75b8e8dd..00000000000
--- a/src/core/lib/iomgr/iomgr_custom.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *
- * Copyright 2017 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.
- *
- */
-
-#ifndef GRPC_CORE_LIB_IOMGR_IOMGR_CUSTOM_H
-#define GRPC_CORE_LIB_IOMGR_IOMGR_CUSTOM_H
-
-#include
-
-#include
-
-#include "src/core/lib/iomgr/pollset_custom.h"
-#include "src/core/lib/iomgr/resolve_address_custom.h"
-#include "src/core/lib/iomgr/tcp_custom.h"
-#include "src/core/lib/iomgr/timer_custom.h"
-
-/* The thread ID of the thread on which grpc was initialized. Used to verify
- * that all calls into the custom iomgr are made on that same thread */
-extern gpr_thd_id g_init_thread;
-
-#ifdef GRPC_CUSTOM_IOMGR_THREAD_CHECK
-#define GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD() \
- GPR_ASSERT(gpr_thd_currentid() == g_init_thread)
-#else
-#define GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD()
-#endif /* GRPC_CUSTOM_IOMGR_THREAD_CHECK */
-
-extern bool g_custom_iomgr_enabled;
-
-void grpc_custom_iomgr_init(grpc_socket_vtable* socket,
- grpc_custom_resolver_vtable* resolver,
- grpc_custom_timer_vtable* timer,
- grpc_custom_poller_vtable* poller);
-
-#endif /* GRPC_CORE_LIB_IOMGR_IOMGR_CUSTOM_H */
diff --git a/src/core/lib/iomgr/pollset_custom.cc b/src/core/lib/iomgr/pollset_custom.cc
deleted file mode 100644
index f70c2bcf3d5..00000000000
--- a/src/core/lib/iomgr/pollset_custom.cc
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *
- * Copyright 2018 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
-
-#include "src/core/lib/iomgr/pollset_custom.h"
-
-#include
-#include
-
-#include
-#include
-#include
-
-#include "src/core/lib/debug/trace.h"
-#include "src/core/lib/iomgr/closure.h"
-#include "src/core/lib/iomgr/iomgr_custom.h"
-#include "src/core/lib/iomgr/pollset.h"
-#include "src/core/lib/iomgr/port.h"
-#include "src/core/lib/iomgr/timer.h"
-
-static grpc_custom_poller_vtable* poller_vtable;
-
-struct grpc_pollset {
- gpr_mu mu;
-};
-
-static size_t pollset_size() { return sizeof(grpc_pollset); }
-
-static void pollset_global_init() { poller_vtable->init(); }
-
-static void pollset_global_shutdown() { poller_vtable->shutdown(); }
-
-static void pollset_init(grpc_pollset* pollset, gpr_mu** mu) {
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- gpr_mu_init(&pollset->mu);
- *mu = &pollset->mu;
-}
-
-static void pollset_shutdown(grpc_pollset* /*pollset*/, grpc_closure* closure) {
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, GRPC_ERROR_NONE);
-}
-
-static void pollset_destroy(grpc_pollset* pollset) {
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- gpr_mu_destroy(&pollset->mu);
-}
-
-static grpc_error_handle pollset_work(grpc_pollset* pollset,
- grpc_pollset_worker** /*worker_hdl*/,
- grpc_millis deadline) {
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- gpr_mu_unlock(&pollset->mu);
- grpc_millis now = grpc_core::ExecCtx::Get()->Now();
- grpc_millis timeout = 0;
- if (deadline > now) {
- timeout = deadline - now;
- }
- // We yield here because the poll() call might yield
- // control back to the application
- grpc_core::ExecCtx* curr = grpc_core::ExecCtx::Get();
- grpc_core::ExecCtx::Set(nullptr);
- grpc_error_handle err = poller_vtable->poll(static_cast(timeout));
- grpc_core::ExecCtx::Set(curr);
- grpc_core::ExecCtx::Get()->InvalidateNow();
- if (grpc_core::ExecCtx::Get()->HasWork()) {
- grpc_core::ExecCtx::Get()->Flush();
- }
- gpr_mu_lock(&pollset->mu);
- return err;
-}
-
-static grpc_error_handle pollset_kick(
- grpc_pollset* /*pollset*/, grpc_pollset_worker* /*specific_worker*/) {
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- poller_vtable->kick();
- return GRPC_ERROR_NONE;
-}
-
-grpc_pollset_vtable custom_pollset_vtable = {
- pollset_global_init, pollset_global_shutdown,
- pollset_init, pollset_shutdown,
- pollset_destroy, pollset_work,
- pollset_kick, pollset_size};
-
-void grpc_custom_pollset_init(grpc_custom_poller_vtable* vtable) {
- poller_vtable = vtable;
- grpc_set_pollset_vtable(&custom_pollset_vtable);
-}
diff --git a/src/core/lib/iomgr/pollset_custom.h b/src/core/lib/iomgr/pollset_custom.h
deleted file mode 100644
index f5c836e5239..00000000000
--- a/src/core/lib/iomgr/pollset_custom.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *
- * Copyright 2018 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.
- *
- */
-
-#ifndef GRPC_CORE_LIB_IOMGR_POLLSET_CUSTOM_H
-#define GRPC_CORE_LIB_IOMGR_POLLSET_CUSTOM_H
-
-#include
-
-#include
-
-#include "src/core/lib/iomgr/error.h"
-
-typedef struct grpc_custom_poller_vtable {
- void (*init)();
- grpc_error_handle (*poll)(size_t timeout_ms);
- void (*kick)();
- void (*shutdown)();
-} grpc_custom_poller_vtable;
-
-void grpc_custom_pollset_init(grpc_custom_poller_vtable* vtable);
-
-#endif /* GRPC_CORE_LIB_IOMGR_POLLSET_CUSTOM_H */
diff --git a/src/core/lib/iomgr/pollset_set_custom.cc b/src/core/lib/iomgr/pollset_set_custom.cc
deleted file mode 100644
index db105bfd9e2..00000000000
--- a/src/core/lib/iomgr/pollset_set_custom.cc
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *
- * Copyright 2016 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
-
-#include "src/core/lib/iomgr/pollset_set.h"
-#include "src/core/lib/iomgr/port.h"
-
-static grpc_pollset_set* pollset_set_create(void) {
- return reinterpret_cast(static_cast(0xdeafbeef));
-}
-
-static void pollset_set_destroy(grpc_pollset_set* /*pollset_set*/) {}
-
-static void pollset_set_add_pollset(grpc_pollset_set* /*pollset_set*/,
- grpc_pollset* /*pollset*/) {}
-
-static void pollset_set_del_pollset(grpc_pollset_set* /*pollset_set*/,
- grpc_pollset* /*pollset*/) {}
-
-static void pollset_set_add_pollset_set(grpc_pollset_set* /*bag*/,
- grpc_pollset_set* /*item*/) {}
-
-static void pollset_set_del_pollset_set(grpc_pollset_set* /*bag*/,
- grpc_pollset_set* /*item*/) {}
-
-static grpc_pollset_set_vtable vtable = {
- pollset_set_create, pollset_set_destroy,
- pollset_set_add_pollset, pollset_set_del_pollset,
- pollset_set_add_pollset_set, pollset_set_del_pollset_set};
-
-void grpc_custom_pollset_set_init() { grpc_set_pollset_set_vtable(&vtable); }
diff --git a/src/core/lib/iomgr/pollset_set_custom.h b/src/core/lib/iomgr/pollset_set_custom.h
deleted file mode 100644
index 80e19a1fef9..00000000000
--- a/src/core/lib/iomgr/pollset_set_custom.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- *
- * Copyright 2018 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.
- *
- */
-
-#ifndef GRPC_CORE_LIB_IOMGR_POLLSET_SET_CUSTOM_H
-#define GRPC_CORE_LIB_IOMGR_POLLSET_SET_CUSTOM_H
-
-#include
-
-void grpc_custom_pollset_set_init();
-
-#endif /* GRPC_CORE_LIB_IOMGR_POLLSET_SET_CUSTOM_H */
diff --git a/src/core/lib/iomgr/port.h b/src/core/lib/iomgr/port.h
index 9888e8c04ba..e2ecbd8c2b7 100644
--- a/src/core/lib/iomgr/port.h
+++ b/src/core/lib/iomgr/port.h
@@ -25,9 +25,7 @@
#ifdef GPR_WINDOWS
#define GRPC_ARES_RESOLVE_LOCALHOST_MANUALLY 1
#endif
-#if defined(GRPC_CUSTOM_SOCKET)
-// Do Nothing
-#elif defined(GRPC_USE_EVENT_ENGINE)
+#if defined(GRPC_USE_EVENT_ENGINE)
// Do Nothing
#elif defined(GPR_WINDOWS)
#define GRPC_WINSOCK_SOCKET 1
@@ -184,12 +182,11 @@
#error "Platform not recognized"
#endif
-#if defined(GRPC_POSIX_SOCKET) + defined(GRPC_WINSOCK_SOCKET) + \
- defined(GRPC_CUSTOM_SOCKET) + defined(GRPC_CFSTREAM) + \
- defined(GRPC_USE_EVENT_ENGINE) != \
+#if defined(GRPC_POSIX_SOCKET) + defined(GRPC_WINSOCK_SOCKET) + \
+ defined(GRPC_CFSTREAM) + defined(GRPC_USE_EVENT_ENGINE) != \
1
#error \
- "Must define exactly one of GRPC_POSIX_SOCKET, GRPC_WINSOCK_SOCKET, GRPC_CUSTOM_SOCKET, GRPC_CFSTREAM, GRPC_USE_EVENT_ENGINE"
+ "Must define exactly one of GRPC_POSIX_SOCKET, GRPC_WINSOCK_SOCKET, GRPC_CFSTREAM, GRPC_USE_EVENT_ENGINE"
#endif
#ifdef GRPC_POSIX_SOCKET
diff --git a/src/core/lib/iomgr/resolve_address_custom.cc b/src/core/lib/iomgr/resolve_address_custom.cc
deleted file mode 100644
index d7208423745..00000000000
--- a/src/core/lib/iomgr/resolve_address_custom.cc
+++ /dev/null
@@ -1,191 +0,0 @@
-//
-// Copyright 2018 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
-
-#include "src/core/lib/iomgr/resolve_address_custom.h"
-
-#include
-
-#include
-#include
-
-#include "absl/strings/str_format.h"
-
-#include
-#include
-
-#include "src/core/lib/address_utils/sockaddr_utils.h"
-#include "src/core/lib/gpr/string.h"
-#include "src/core/lib/gpr/useful.h"
-#include "src/core/lib/gprpp/host_port.h"
-#include "src/core/lib/iomgr/iomgr_custom.h"
-#include "src/core/lib/iomgr/port.h"
-#include "src/core/lib/iomgr/resolve_address_impl.h"
-#include "src/core/lib/transport/error_utils.h"
-
-void grpc_resolved_addresses_destroy(grpc_resolved_addresses* addresses) {
- if (addresses != nullptr) {
- gpr_free(addresses->addrs);
- }
- gpr_free(addresses);
-}
-
-void grpc_custom_resolve_callback(grpc_custom_resolver* resolver,
- grpc_resolved_addresses* result,
- grpc_error_handle error) {
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
- grpc_core::ExecCtx exec_ctx;
- grpc_core::CustomDNSResolver::Request* request =
- grpc_core::CustomDNSResolver::Request::FromC(resolver);
- if (error != GRPC_ERROR_NONE) {
- request->ResolveCallback(grpc_error_to_absl_status(error));
- } else {
- std::vector addresses;
- for (size_t i = 0; i < result->naddrs; i++) {
- addresses.push_back(result->addrs[i]);
- }
- request->ResolveCallback(std::move(addresses));
- grpc_resolved_addresses_destroy(result);
- }
- GRPC_ERROR_UNREF(error);
-}
-
-namespace grpc_core {
-
-namespace {
-
-absl::Status TrySplitHostPort(absl::string_view name,
- absl::string_view default_port, std::string* host,
- std::string* port) {
- // parse name, splitting it into host and port parts
- SplitHostPort(name, host, port);
- if (host->empty()) {
- return absl::UnknownError(
- absl::StrFormat("unparseable host:port: '%s'", name));
- }
- if (port->empty()) {
- // TODO(murgatroid99): add tests for this case
- if (default_port.empty()) {
- return absl::UnknownError(absl::StrFormat("no port in name '%s'", name));
- }
- *port = std::string(default_port);
- }
- return absl::OkStatus();
-}
-
-absl::StatusOr NamedPortToNumeric(absl::string_view named_port) {
- if (named_port == "http") {
- return "80";
- } else if (named_port == "https") {
- return "443";
- } else {
- return absl::UnknownError(absl::StrCat("unknown named port: ", named_port));
- }
-}
-
-} // namespace
-
-void CustomDNSResolver::Request::ResolveCallback(
- absl::StatusOr> result) {
- if (!result.ok()) {
- auto numeric_port_or = NamedPortToNumeric(port_);
- if (numeric_port_or.ok()) {
- port_ = *numeric_port_or;
- resolve_address_vtable_->resolve_async(c_ptr(), host_.c_str(),
- port_.c_str());
- // keep holding ref for active resolution
- return;
- }
- }
- // since we can't guarantee that we're not being called inline from
- // Start(), run the callback on the ExecCtx.
- new DNSCallbackExecCtxScheduler(std::move(on_done_), std::move(result));
- Unref();
-}
-
-namespace {
-CustomDNSResolver* g_custom_dns_resolver;
-} // namespace
-
-// Creates the global custom resolver with the specified vtable.
-void CustomDNSResolver::Create(grpc_custom_resolver_vtable* vtable) {
- if (g_custom_dns_resolver != nullptr) return;
- g_custom_dns_resolver = new CustomDNSResolver(vtable);
-}
-
-// Gets the singleton instance.
-CustomDNSResolver* CustomDNSResolver::Get() { return g_custom_dns_resolver; }
-
-absl::StatusOr>
-CustomDNSResolver::ResolveNameBlocking(absl::string_view name,
- absl::string_view default_port) {
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
-
- std::string host;
- std::string port;
- absl::Status parse_status =
- TrySplitHostPort(name, default_port, &host, &port);
- if (!parse_status.ok()) {
- return parse_status;
- }
-
- // Call getaddrinfo
- ExecCtx* curr = ExecCtx::Get();
- ExecCtx::Set(nullptr);
- grpc_resolved_addresses* addrs;
- grpc_error_handle err =
- resolve_address_vtable_->resolve(host.c_str(), port.c_str(), &addrs);
- if (err != GRPC_ERROR_NONE) {
- auto numeric_port_or = NamedPortToNumeric(port);
- if (numeric_port_or.ok()) {
- port = *numeric_port_or;
- GRPC_ERROR_UNREF(err);
- err =
- resolve_address_vtable_->resolve(host.c_str(), port.c_str(), &addrs);
- }
- }
- ExecCtx::Set(curr);
- if (err == GRPC_ERROR_NONE) {
- GPR_ASSERT(addrs != nullptr);
- std::vector result;
- for (size_t i = 0; i < addrs->naddrs; i++) {
- result.push_back(addrs->addrs[i]);
- }
- grpc_resolved_addresses_destroy(addrs);
- return result;
- }
- auto error_result = grpc_error_to_absl_status(err);
- GRPC_ERROR_UNREF(err);
- return error_result;
-}
-
-void CustomDNSResolver::Request::Start() {
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- absl::Status parse_status =
- TrySplitHostPort(name_, default_port_, &host_, &port_);
- if (!parse_status.ok()) {
- new DNSCallbackExecCtxScheduler(std::move(on_done_),
- std::move(parse_status));
- return;
- }
- // Call getaddrinfo
- Ref().release(); // ref held by resolution
- resolve_address_vtable_->resolve_async(c_ptr(), host_.c_str(), port_.c_str());
-}
-
-} // namespace grpc_core
diff --git a/src/core/lib/iomgr/resolve_address_custom.h b/src/core/lib/iomgr/resolve_address_custom.h
deleted file mode 100644
index 54586265fe3..00000000000
--- a/src/core/lib/iomgr/resolve_address_custom.h
+++ /dev/null
@@ -1,126 +0,0 @@
-//
-// Copyright 2018 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.
-//
-
-#ifndef GRPC_CORE_LIB_IOMGR_RESOLVE_ADDRESS_CUSTOM_H
-#define GRPC_CORE_LIB_IOMGR_RESOLVE_ADDRESS_CUSTOM_H
-
-#include
-
-#include
-
-#include "src/core/lib/gprpp/cpp_impl_of.h"
-#include "src/core/lib/iomgr/port.h"
-#include "src/core/lib/iomgr/resolve_address.h"
-#include "src/core/lib/iomgr/sockaddr.h"
-
-// User-configured custom DNS resolution APIs
-
-// TODO(apolcyn): This type could be deleted as a part of converting
-// this grpc_custom_resolver API to C++.
-struct grpc_resolved_addresses {
- size_t naddrs;
- grpc_resolved_address* addrs;
-};
-
-// Destroy resolved addresses
-void grpc_resolved_addresses_destroy(grpc_resolved_addresses* addresses);
-
-typedef struct grpc_custom_resolver grpc_custom_resolver;
-
-typedef struct grpc_custom_resolver_vtable {
- grpc_error_handle (*resolve)(const char* host, const char* port,
- grpc_resolved_addresses** res);
- void (*resolve_async)(grpc_custom_resolver* resolver, const char* host,
- const char* port);
-} grpc_custom_resolver_vtable;
-
-// TODO(apolcyn): as a part of converting this API to C++,
-// callers of \a grpc_custom_resolve_callback could instead just invoke
-// CustomDNSResolver::Request::ResolveCallback directly.
-void grpc_custom_resolve_callback(grpc_custom_resolver* resolver,
- grpc_resolved_addresses* result,
- grpc_error_handle error);
-
-// Internal APIs
-
-namespace grpc_core {
-
-class CustomDNSResolver : public DNSResolver {
- public:
- class Request : public DNSResolver::Request,
- public CppImplOf {
- public:
- Request(
- absl::string_view name, absl::string_view default_port,
- std::function>)>
- on_done,
- const grpc_custom_resolver_vtable* resolve_address_vtable)
- : name_(name),
- default_port_(default_port),
- on_done_(std::move(on_done)),
- resolve_address_vtable_(resolve_address_vtable) {}
-
- // Starts the resolution
- void Start() override;
-
- // This is a no-op for the native resolver. Note
- // that no I/O polling is required for the resolution to finish.
- void Orphan() override { Unref(); }
-
- // Continues async resolution with the results passed first in to
- // grpc_custom_resolve_callback.
- void ResolveCallback(
- absl::StatusOr> result);
-
- private:
- const std::string name_;
- const std::string default_port_;
- std::string host_;
- std::string port_;
- std::function>)>
- on_done_;
- // user-defined DNS methods
- const grpc_custom_resolver_vtable* resolve_address_vtable_;
- };
-
- // Creates the global custom resolver with the specified vtable.
- static void Create(grpc_custom_resolver_vtable* vtable);
-
- // Gets the singleton instance.
- static CustomDNSResolver* Get();
-
- explicit CustomDNSResolver(const grpc_custom_resolver_vtable* vtable)
- : resolve_address_vtable_(vtable) {}
-
- OrphanablePtr ResolveName(
- absl::string_view name, absl::string_view default_port,
- grpc_pollset_set* /* interested_parties */,
- std::function>)>
- on_done) override {
- return MakeOrphanable(name, default_port, std::move(on_done),
- resolve_address_vtable_);
- }
-
- absl::StatusOr> ResolveNameBlocking(
- absl::string_view name, absl::string_view default_port) override;
-
- private:
- // user-defined DNS methods
- const grpc_custom_resolver_vtable* resolve_address_vtable_;
-};
-
-} // namespace grpc_core
-#endif /* GRPC_CORE_LIB_IOMGR_RESOLVE_ADDRESS_CUSTOM_H */
diff --git a/src/core/lib/iomgr/tcp_client_custom.cc b/src/core/lib/iomgr/tcp_client_custom.cc
deleted file mode 100644
index 57c5752f228..00000000000
--- a/src/core/lib/iomgr/tcp_client_custom.cc
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- *
- * Copyright 2018 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
-
-#include
-
-#include
-#include
-
-#include "src/core/lib/address_utils/sockaddr_utils.h"
-#include "src/core/lib/iomgr/error.h"
-#include "src/core/lib/iomgr/iomgr_custom.h"
-#include "src/core/lib/iomgr/port.h"
-#include "src/core/lib/iomgr/tcp_client.h"
-#include "src/core/lib/iomgr/tcp_custom.h"
-#include "src/core/lib/iomgr/timer.h"
-
-extern grpc_core::TraceFlag grpc_tcp_trace;
-extern grpc_socket_vtable* grpc_custom_socket_vtable;
-
-struct grpc_custom_tcp_connect {
- grpc_custom_socket* socket;
- grpc_timer alarm;
- grpc_closure on_alarm;
- grpc_closure* closure;
- grpc_endpoint** endpoint;
- int refs;
- std::string addr_name;
-};
-
-static void custom_tcp_connect_cleanup(grpc_custom_tcp_connect* connect) {
- grpc_custom_socket* socket = connect->socket;
- delete connect;
- if (socket->refs == 0) {
- grpc_custom_socket_vtable->destroy(socket);
- gpr_free(socket);
- }
-}
-
-static void custom_close_callback(grpc_custom_socket* /*socket*/) {}
-
-static void on_alarm(void* acp, grpc_error_handle error) {
- int done;
- grpc_custom_socket* socket = static_cast(acp);
- grpc_custom_tcp_connect* connect = socket->connector;
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
- gpr_log(GPR_INFO, "CLIENT_CONNECT: %s: on_alarm: error=%s",
- connect->addr_name.c_str(), grpc_error_std_string(error).c_str());
- }
- if (error == GRPC_ERROR_NONE) {
- /* error == NONE implies that the timer ran out, and wasn't cancelled. If
- it was cancelled, then the handler that cancelled it also should close
- the handle, if applicable */
- grpc_custom_socket_vtable->close(socket, custom_close_callback);
- }
- done = (--connect->refs == 0);
- socket->refs--;
- if (done) {
- custom_tcp_connect_cleanup(connect);
- }
-}
-
-static void custom_connect_callback_internal(grpc_custom_socket* socket,
- grpc_error_handle error) {
- grpc_custom_tcp_connect* connect = socket->connector;
- int done;
- grpc_closure* closure = connect->closure;
- grpc_timer_cancel(&connect->alarm);
- if (error == GRPC_ERROR_NONE) {
- *connect->endpoint =
- custom_tcp_endpoint_create(socket, connect->addr_name.c_str());
- }
- done = (--connect->refs == 0);
- socket->refs--;
- if (done) {
- grpc_core::ExecCtx::Get()->Flush();
- custom_tcp_connect_cleanup(connect);
- }
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, error);
-}
-
-static void custom_connect_callback(grpc_custom_socket* socket,
- grpc_error_handle error) {
- grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
- if (grpc_core::ExecCtx::Get() == nullptr) {
- /* If we are being run on a thread which does not have an exec_ctx created
- * yet, we should create one. */
- grpc_core::ExecCtx exec_ctx;
- custom_connect_callback_internal(socket, error);
- } else {
- custom_connect_callback_internal(socket, error);
- }
-}
-
-static void tcp_connect(grpc_closure* closure, grpc_endpoint** ep,
- grpc_pollset_set* interested_parties,
- const grpc_channel_args* channel_args,
- const grpc_resolved_address* resolved_addr,
- grpc_millis deadline) {
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- (void)channel_args;
- (void)interested_parties;
- grpc_custom_socket* socket =
- static_cast(gpr_malloc(sizeof(grpc_custom_socket)));
- socket->refs = 2;
- (void)grpc_custom_socket_vtable->init(socket, GRPC_AF_UNSPEC);
- grpc_custom_tcp_connect* connect = new grpc_custom_tcp_connect();
- connect->closure = closure;
- connect->endpoint = ep;
- connect->addr_name = grpc_sockaddr_to_uri(resolved_addr);
- connect->socket = socket;
- socket->connector = connect;
- socket->endpoint = nullptr;
- socket->listener = nullptr;
- connect->refs = 2;
-
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
- gpr_log(GPR_INFO, "CLIENT_CONNECT: %p %s: asynchronously connecting",
- socket, connect->addr_name.c_str());
- }
-
- GRPC_CLOSURE_INIT(&connect->on_alarm, on_alarm, socket,
- grpc_schedule_on_exec_ctx);
- grpc_timer_init(&connect->alarm, deadline, &connect->on_alarm);
- grpc_custom_socket_vtable->connect(
- socket, reinterpret_cast(resolved_addr->addr),
- resolved_addr->len, custom_connect_callback);
-}
-
-grpc_tcp_client_vtable custom_tcp_client_vtable = {tcp_connect};
diff --git a/src/core/lib/iomgr/tcp_custom.cc b/src/core/lib/iomgr/tcp_custom.cc
deleted file mode 100644
index 732b03acaf5..00000000000
--- a/src/core/lib/iomgr/tcp_custom.cc
+++ /dev/null
@@ -1,350 +0,0 @@
-/*
- *
- * Copyright 2018 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
-
-#include "src/core/lib/iomgr/tcp_custom.h"
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include "src/core/lib/address_utils/sockaddr_utils.h"
-#include "src/core/lib/iomgr/error.h"
-#include "src/core/lib/iomgr/iomgr_custom.h"
-#include "src/core/lib/iomgr/port.h"
-#include "src/core/lib/iomgr/tcp_client.h"
-#include "src/core/lib/iomgr/tcp_server.h"
-#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/slice/slice_string_helpers.h"
-
-#define GRPC_TCP_DEFAULT_READ_SLICE_SIZE 8192
-
-extern grpc_core::TraceFlag grpc_tcp_trace;
-
-grpc_socket_vtable* grpc_custom_socket_vtable = nullptr;
-extern grpc_tcp_server_vtable custom_tcp_server_vtable;
-extern grpc_tcp_client_vtable custom_tcp_client_vtable;
-
-void grpc_custom_endpoint_init(grpc_socket_vtable* impl) {
- grpc_custom_socket_vtable = impl;
- grpc_set_tcp_client_impl(&custom_tcp_client_vtable);
- grpc_set_tcp_server_impl(&custom_tcp_server_vtable);
-}
-
-struct custom_tcp_endpoint {
- grpc_endpoint base;
- gpr_refcount refcount;
- grpc_custom_socket* socket;
-
- grpc_closure* read_cb = nullptr;
- grpc_closure* write_cb = nullptr;
-
- grpc_slice_buffer* read_slices = nullptr;
- grpc_slice_buffer* write_slices = nullptr;
-
- bool shutting_down;
-
- std::string peer_string;
- std::string local_address;
-};
-static void tcp_free(grpc_custom_socket* s) {
- custom_tcp_endpoint* tcp =
- reinterpret_cast(s->endpoint);
- delete tcp;
- s->refs--;
- if (s->refs == 0) {
- grpc_custom_socket_vtable->destroy(s);
- gpr_free(s);
- }
-}
-
-#ifndef NDEBUG
-#define TCP_UNREF(tcp, reason) tcp_unref((tcp), (reason), __FILE__, __LINE__)
-#define TCP_REF(tcp, reason) tcp_ref((tcp), (reason), __FILE__, __LINE__)
-static void tcp_unref(custom_tcp_endpoint* tcp, const char* reason,
- const char* file, int line) {
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
- gpr_atm val = gpr_atm_no_barrier_load(&tcp->refcount.count);
- gpr_log(file, line, GPR_LOG_SEVERITY_ERROR,
- "TCP unref %p : %s %" PRIdPTR " -> %" PRIdPTR, tcp->socket, reason,
- val, val - 1);
- }
- if (gpr_unref(&tcp->refcount)) {
- tcp_free(tcp->socket);
- }
-}
-
-static void tcp_ref(custom_tcp_endpoint* tcp, const char* reason,
- const char* file, int line) {
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
- gpr_atm val = gpr_atm_no_barrier_load(&tcp->refcount.count);
- gpr_log(file, line, GPR_LOG_SEVERITY_ERROR,
- "TCP ref %p : %s %" PRIdPTR " -> %" PRIdPTR, tcp->socket, reason,
- val, val + 1);
- }
- gpr_ref(&tcp->refcount);
-}
-#else
-#define TCP_UNREF(tcp, reason) tcp_unref((tcp))
-#define TCP_REF(tcp, reason) tcp_ref((tcp))
-static void tcp_unref(custom_tcp_endpoint* tcp) {
- if (gpr_unref(&tcp->refcount)) {
- tcp_free(tcp->socket);
- }
-}
-
-static void tcp_ref(custom_tcp_endpoint* tcp) { gpr_ref(&tcp->refcount); }
-#endif
-
-static void call_read_cb(custom_tcp_endpoint* tcp, grpc_error_handle error) {
- grpc_closure* cb = tcp->read_cb;
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
- gpr_log(GPR_INFO, "TCP:%p call_cb %p %p:%p", tcp->socket, cb, cb->cb,
- cb->cb_arg);
- size_t i;
- gpr_log(GPR_INFO, "read: error=%s", grpc_error_std_string(error).c_str());
- for (i = 0; i < tcp->read_slices->count; i++) {
- char* dump = grpc_dump_slice(tcp->read_slices->slices[i],
- GPR_DUMP_HEX | GPR_DUMP_ASCII);
- gpr_log(GPR_INFO, "READ %p (peer=%s): %s", tcp, tcp->peer_string.c_str(),
- dump);
- gpr_free(dump);
- }
- }
- TCP_UNREF(tcp, "read");
- tcp->read_slices = nullptr;
- tcp->read_cb = nullptr;
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, error);
-}
-
-static void custom_read_callback(grpc_custom_socket* socket, size_t nread,
- grpc_error_handle error) {
- grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
- grpc_core::ExecCtx exec_ctx;
- grpc_slice_buffer garbage;
- custom_tcp_endpoint* tcp =
- reinterpret_cast(socket->endpoint);
- if (error == GRPC_ERROR_NONE && nread == 0) {
- error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("EOF");
- }
- if (error == GRPC_ERROR_NONE) {
- // Successful read
- if (nread < tcp->read_slices->length) {
- /* TODO(murgatroid99): Instead of discarding the unused part of the read
- * buffer, reuse it as the next read buffer. */
- grpc_slice_buffer_init(&garbage);
- grpc_slice_buffer_trim_end(tcp->read_slices,
- tcp->read_slices->length - nread, &garbage);
- grpc_slice_buffer_reset_and_unref_internal(&garbage);
- }
- } else {
- grpc_slice_buffer_reset_and_unref_internal(tcp->read_slices);
- }
- call_read_cb(tcp, error);
-}
-
-static void endpoint_read(grpc_endpoint* ep, grpc_slice_buffer* read_slices,
- grpc_closure* cb, bool /*urgent*/) {
- custom_tcp_endpoint* tcp = reinterpret_cast(ep);
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- GPR_ASSERT(tcp->read_cb == nullptr);
- tcp->read_cb = cb;
- tcp->read_slices = read_slices;
- grpc_slice_buffer_reset_and_unref_internal(read_slices);
- TCP_REF(tcp, "read");
- if (tcp->read_slices->length < GRPC_TCP_DEFAULT_READ_SLICE_SIZE) {
- grpc_slice_buffer_add_indexed(
- tcp->read_slices, GRPC_SLICE_MALLOC(GRPC_TCP_DEFAULT_READ_SLICE_SIZE));
- }
- /* slices[0] should always exist here since we just added it if it did not */
- char* buffer = reinterpret_cast(
- GRPC_SLICE_START_PTR(tcp->read_slices->slices[0]));
- size_t len = GRPC_SLICE_LENGTH(tcp->read_slices->slices[0]);
- grpc_custom_socket_vtable->read(tcp->socket, buffer, len,
- custom_read_callback);
-}
-
-static void custom_write_callback(grpc_custom_socket* socket,
- grpc_error_handle error) {
- grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
- grpc_core::ExecCtx exec_ctx;
- custom_tcp_endpoint* tcp =
- reinterpret_cast(socket->endpoint);
- grpc_closure* cb = tcp->write_cb;
- tcp->write_cb = nullptr;
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
- gpr_log(GPR_INFO, "write complete on %p: error=%s", tcp->socket,
- grpc_error_std_string(error).c_str());
- }
- TCP_UNREF(tcp, "write");
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, error);
-}
-
-static void endpoint_write(grpc_endpoint* ep, grpc_slice_buffer* write_slices,
- grpc_closure* cb, void* /*arg*/) {
- custom_tcp_endpoint* tcp = reinterpret_cast(ep);
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
-
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
- size_t j;
-
- for (j = 0; j < write_slices->count; j++) {
- char* data = grpc_dump_slice(write_slices->slices[j],
- GPR_DUMP_HEX | GPR_DUMP_ASCII);
- gpr_log(GPR_INFO, "WRITE %p (peer=%s): %s", tcp->socket,
- tcp->peer_string.c_str(), data);
- gpr_free(data);
- }
- }
-
- if (tcp->shutting_down) {
- grpc_core::ExecCtx::Run(
- DEBUG_LOCATION, cb,
- GRPC_ERROR_CREATE_FROM_STATIC_STRING("TCP socket is shutting down"));
- return;
- }
-
- GPR_ASSERT(tcp->write_cb == nullptr);
- tcp->write_slices = write_slices;
- GPR_ASSERT(tcp->write_slices->count <= UINT_MAX);
- if (tcp->write_slices->count == 0) {
- // No slices means we don't have to do anything
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, GRPC_ERROR_NONE);
- return;
- }
- tcp->write_cb = cb;
- TCP_REF(tcp, "write");
- grpc_custom_socket_vtable->write(tcp->socket, tcp->write_slices,
- custom_write_callback);
-}
-
-static void endpoint_add_to_pollset(grpc_endpoint* ep, grpc_pollset* pollset) {
- // No-op. We're ignoring pollsets currently
- (void)ep;
- (void)pollset;
-}
-
-static void endpoint_add_to_pollset_set(grpc_endpoint* ep,
- grpc_pollset_set* pollset) {
- // No-op. We're ignoring pollsets currently
- (void)ep;
- (void)pollset;
-}
-
-static void endpoint_delete_from_pollset_set(grpc_endpoint* ep,
- grpc_pollset_set* pollset) {
- // No-op. We're ignoring pollsets currently
- (void)ep;
- (void)pollset;
-}
-
-static void endpoint_shutdown(grpc_endpoint* ep, grpc_error_handle why) {
- custom_tcp_endpoint* tcp = reinterpret_cast(ep);
- if (!tcp->shutting_down) {
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
- gpr_log(GPR_INFO, "TCP %p shutdown why=%s", tcp->socket,
- grpc_error_std_string(why).c_str());
- }
- tcp->shutting_down = true;
- // grpc_core::ExecCtx::Run(DEBUG_LOCATION,tcp->read_cb,
- // GRPC_ERROR_REF(why));
- // grpc_core::ExecCtx::Run(DEBUG_LOCATION,tcp->write_cb,
- // GRPC_ERROR_REF(why)); tcp->read_cb = nullptr; tcp->write_cb = nullptr;
- grpc_custom_socket_vtable->shutdown(tcp->socket);
- }
- GRPC_ERROR_UNREF(why);
-}
-
-static void custom_close_callback(grpc_custom_socket* socket) {
- socket->refs--;
- if (socket->refs == 0) {
- grpc_custom_socket_vtable->destroy(socket);
- gpr_free(socket);
- } else if (socket->endpoint) {
- grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
- grpc_core::ExecCtx exec_ctx;
- custom_tcp_endpoint* tcp =
- reinterpret_cast(socket->endpoint);
- TCP_UNREF(tcp, "destroy");
- }
-}
-
-static void endpoint_destroy(grpc_endpoint* ep) {
- custom_tcp_endpoint* tcp = reinterpret_cast(ep);
- grpc_custom_socket_vtable->close(tcp->socket, custom_close_callback);
-}
-
-static absl::string_view endpoint_get_peer(grpc_endpoint* ep) {
- custom_tcp_endpoint* tcp = reinterpret_cast(ep);
- return tcp->peer_string;
-}
-
-static absl::string_view endpoint_get_local_address(grpc_endpoint* ep) {
- custom_tcp_endpoint* tcp = reinterpret_cast(ep);
- return tcp->local_address;
-}
-
-static int endpoint_get_fd(grpc_endpoint* /*ep*/) { return -1; }
-
-static bool endpoint_can_track_err(grpc_endpoint* /*ep*/) { return false; }
-
-static grpc_endpoint_vtable vtable = {endpoint_read,
- endpoint_write,
- endpoint_add_to_pollset,
- endpoint_add_to_pollset_set,
- endpoint_delete_from_pollset_set,
- endpoint_shutdown,
- endpoint_destroy,
- endpoint_get_peer,
- endpoint_get_local_address,
- endpoint_get_fd,
- endpoint_can_track_err};
-
-grpc_endpoint* custom_tcp_endpoint_create(grpc_custom_socket* socket,
- const char* peer_string) {
- custom_tcp_endpoint* tcp = new custom_tcp_endpoint;
- grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
- grpc_core::ExecCtx exec_ctx;
-
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
- gpr_log(GPR_INFO, "Creating TCP endpoint %p", socket);
- }
- socket->refs++;
- socket->endpoint = reinterpret_cast(tcp);
- tcp->socket = socket;
- tcp->base.vtable = &vtable;
- gpr_ref_init(&tcp->refcount, 1);
- tcp->peer_string = peer_string;
- grpc_resolved_address resolved_local_addr;
- resolved_local_addr.len = sizeof(resolved_local_addr.addr);
- if (grpc_custom_socket_vtable->getsockname(
- socket, reinterpret_cast(resolved_local_addr.addr),
- reinterpret_cast(&resolved_local_addr.len)) !=
- GRPC_ERROR_NONE) {
- tcp->local_address = "";
- } else {
- tcp->local_address = grpc_sockaddr_to_uri(&resolved_local_addr);
- }
- tcp->shutting_down = false;
- return &tcp->base;
-}
diff --git a/src/core/lib/iomgr/tcp_custom.h b/src/core/lib/iomgr/tcp_custom.h
deleted file mode 100644
index 6385d044a5e..00000000000
--- a/src/core/lib/iomgr/tcp_custom.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- *
- * Copyright 2018 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.
- *
- */
-
-#ifndef GRPC_CORE_LIB_IOMGR_TCP_CUSTOM_H
-#define GRPC_CORE_LIB_IOMGR_TCP_CUSTOM_H
-
-#include
-
-#include "src/core/lib/iomgr/endpoint.h"
-#include "src/core/lib/iomgr/sockaddr.h"
-
-// Same number as the micro of SO_REUSEPORT in kernel
-#define GRPC_CUSTOM_SOCKET_OPT_SO_REUSEPORT (0x00000200u)
-
-typedef struct grpc_tcp_listener grpc_tcp_listener;
-typedef struct grpc_custom_tcp_connect grpc_custom_tcp_connect;
-
-typedef struct grpc_custom_socket {
- // Implementation defined
- void* impl;
- grpc_endpoint* endpoint;
- grpc_tcp_listener* listener;
- grpc_custom_tcp_connect* connector;
- int refs;
-} grpc_custom_socket;
-
-typedef void (*grpc_custom_connect_callback)(grpc_custom_socket* socket,
- grpc_error_handle error);
-typedef void (*grpc_custom_write_callback)(grpc_custom_socket* socket,
- grpc_error_handle error);
-typedef void (*grpc_custom_read_callback)(grpc_custom_socket* socket,
- size_t nread,
- grpc_error_handle error);
-typedef void (*grpc_custom_accept_callback)(grpc_custom_socket* socket,
- grpc_custom_socket* client,
- grpc_error_handle error);
-typedef void (*grpc_custom_close_callback)(grpc_custom_socket* socket);
-
-typedef struct grpc_socket_vtable {
- grpc_error_handle (*init)(grpc_custom_socket* socket, int domain);
- void (*connect)(grpc_custom_socket* socket, const grpc_sockaddr* addr,
- size_t len, grpc_custom_connect_callback cb);
- void (*destroy)(grpc_custom_socket* socket);
- void (*shutdown)(grpc_custom_socket* socket);
- void (*close)(grpc_custom_socket* socket, grpc_custom_close_callback cb);
- void (*write)(grpc_custom_socket* socket, grpc_slice_buffer* slices,
- grpc_custom_write_callback cb);
- void (*read)(grpc_custom_socket* socket, char* buffer, size_t length,
- grpc_custom_read_callback cb);
- grpc_error_handle (*getpeername)(grpc_custom_socket* socket,
- const grpc_sockaddr* addr, int* len);
- grpc_error_handle (*getsockname)(grpc_custom_socket* socket,
- const grpc_sockaddr* addr, int* len);
- grpc_error_handle (*bind)(grpc_custom_socket* socket,
- const grpc_sockaddr* addr, size_t len, int flags);
- grpc_error_handle (*listen)(grpc_custom_socket* socket);
- void (*accept)(grpc_custom_socket* socket, grpc_custom_socket* client,
- grpc_custom_accept_callback cb);
-} grpc_socket_vtable;
-
-/* Internal APIs */
-void grpc_custom_endpoint_init(grpc_socket_vtable* impl);
-
-void grpc_custom_close_server_callback(grpc_tcp_listener* listener);
-
-/// Takes ownership of \a slice_allocator.
-grpc_endpoint* custom_tcp_endpoint_create(grpc_custom_socket* socket,
- const char* peer_string);
-
-#endif /* GRPC_CORE_LIB_IOMGR_TCP_CUSTOM_H */
diff --git a/src/core/lib/iomgr/tcp_server_custom.cc b/src/core/lib/iomgr/tcp_server_custom.cc
deleted file mode 100644
index 1cd13eaea77..00000000000
--- a/src/core/lib/iomgr/tcp_server_custom.cc
+++ /dev/null
@@ -1,457 +0,0 @@
-/*
- *
- * Copyright 2018 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
-
-#include
-#include
-
-#include
-
-#include
-#include
-
-#include "src/core/lib/address_utils/sockaddr_utils.h"
-#include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/gprpp/memory.h"
-#include "src/core/lib/iomgr/error.h"
-#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/iomgr/iomgr_custom.h"
-#include "src/core/lib/iomgr/port.h"
-#include "src/core/lib/iomgr/sockaddr.h"
-#include "src/core/lib/iomgr/tcp_custom.h"
-#include "src/core/lib/iomgr/tcp_server.h"
-
-extern grpc_core::TraceFlag grpc_tcp_trace;
-
-extern grpc_socket_vtable* grpc_custom_socket_vtable;
-
-/* one listening port */
-struct grpc_tcp_listener {
- grpc_tcp_server* server;
- unsigned port_index;
- int port;
-
- grpc_custom_socket* socket;
-
- /* linked list */
- struct grpc_tcp_listener* next;
-
- bool closed;
-};
-
-struct grpc_tcp_server {
- gpr_refcount refs;
-
- /* Called whenever accept() succeeds on a server port. */
- grpc_tcp_server_cb on_accept_cb;
- void* on_accept_cb_arg;
-
- int open_ports;
-
- /* linked list of server ports */
- grpc_tcp_listener* head;
- grpc_tcp_listener* tail;
-
- /* List of closures passed to shutdown_starting_add(). */
- grpc_closure_list shutdown_starting;
-
- /* shutdown callback */
- grpc_closure* shutdown_complete;
-
- bool shutdown;
- bool so_reuseport;
-};
-
-static grpc_error_handle tcp_server_create(grpc_closure* shutdown_complete,
- const grpc_channel_args* args,
- grpc_tcp_server** server) {
- grpc_tcp_server* s = new grpc_tcp_server();
- s->so_reuseport =
- grpc_channel_args_find_bool(args, GRPC_ARG_ALLOW_REUSEPORT, true);
- gpr_ref_init(&s->refs, 1);
- s->on_accept_cb = nullptr;
- s->on_accept_cb_arg = nullptr;
- s->open_ports = 0;
- s->head = nullptr;
- s->tail = nullptr;
- s->shutdown_starting.head = nullptr;
- s->shutdown_starting.tail = nullptr;
- s->shutdown_complete = shutdown_complete;
- s->shutdown = false;
- *server = s;
- return GRPC_ERROR_NONE;
-}
-
-static grpc_tcp_server* tcp_server_ref(grpc_tcp_server* s) {
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- gpr_ref(&s->refs);
- return s;
-}
-
-static void tcp_server_shutdown_starting_add(grpc_tcp_server* s,
- grpc_closure* shutdown_starting) {
- grpc_closure_list_append(&s->shutdown_starting, shutdown_starting,
- GRPC_ERROR_NONE);
-}
-
-static void finish_shutdown(grpc_tcp_server* s) {
- GPR_ASSERT(s->shutdown);
- if (s->shutdown_complete != nullptr) {
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, s->shutdown_complete,
- GRPC_ERROR_NONE);
- }
-
- while (s->head) {
- grpc_tcp_listener* sp = s->head;
- s->head = sp->next;
- sp->next = nullptr;
- gpr_free(sp);
- }
- gpr_free(s);
-}
-
-static void custom_close_callback(grpc_custom_socket* socket) {
- grpc_tcp_listener* sp = socket->listener;
- if (sp) {
- grpc_core::ExecCtx exec_ctx;
- sp->server->open_ports--;
- if (sp->server->open_ports == 0 && sp->server->shutdown) {
- finish_shutdown(sp->server);
- }
- }
- socket->refs--;
- if (socket->refs == 0) {
- grpc_custom_socket_vtable->destroy(socket);
- gpr_free(socket);
- }
-}
-
-void grpc_custom_close_server_callback(grpc_tcp_listener* listener) {
- if (listener) {
- grpc_core::ExecCtx exec_ctx;
- listener->server->open_ports--;
- if (listener->server->open_ports == 0 && listener->server->shutdown) {
- finish_shutdown(listener->server);
- }
- }
-}
-
-static void close_listener(grpc_tcp_listener* sp) {
- grpc_custom_socket* socket = sp->socket;
- if (!sp->closed) {
- sp->closed = true;
- grpc_custom_socket_vtable->close(socket, custom_close_callback);
- }
-}
-
-static void tcp_server_destroy(grpc_tcp_server* s) {
- int immediately_done = 0;
- grpc_tcp_listener* sp;
-
- GPR_ASSERT(!s->shutdown);
- s->shutdown = true;
-
- if (s->open_ports == 0) {
- immediately_done = 1;
- }
- for (sp = s->head; sp; sp = sp->next) {
- close_listener(sp);
- }
-
- if (immediately_done) {
- finish_shutdown(s);
- }
-}
-
-static void tcp_server_unref(grpc_tcp_server* s) {
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- if (gpr_unref(&s->refs)) {
- /* Complete shutdown_starting work before destroying. */
- grpc_core::ExecCtx exec_ctx;
- grpc_core::ExecCtx::RunList(DEBUG_LOCATION, &s->shutdown_starting);
- grpc_core::ExecCtx::Get()->Flush();
- tcp_server_destroy(s);
- }
-}
-
-static void finish_accept(grpc_tcp_listener* sp, grpc_custom_socket* socket) {
- grpc_tcp_server_acceptor* acceptor =
- static_cast(gpr_malloc(sizeof(*acceptor)));
- grpc_endpoint* ep = nullptr;
- grpc_resolved_address peer_name;
- std::string peer_name_string;
- grpc_error_handle err;
-
- memset(&peer_name, 0, sizeof(grpc_resolved_address));
- peer_name.len = GRPC_MAX_SOCKADDR_SIZE;
- err = grpc_custom_socket_vtable->getpeername(
- socket, reinterpret_cast(&peer_name.addr),
- reinterpret_cast(&peer_name.len));
- if (err == GRPC_ERROR_NONE) {
- peer_name_string = grpc_sockaddr_to_uri(&peer_name);
- } else {
- GRPC_LOG_IF_ERROR("getpeername error", err);
- GRPC_ERROR_UNREF(err);
- }
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
- gpr_log(GPR_INFO, "SERVER_CONNECT: %p accepted connection: %s", sp->server,
- peer_name_string.c_str());
- }
- ep = custom_tcp_endpoint_create(socket, peer_name_string.c_str());
- acceptor->from_server = sp->server;
- acceptor->port_index = sp->port_index;
- acceptor->fd_index = 0;
- acceptor->external_connection = false;
- sp->server->on_accept_cb(sp->server->on_accept_cb_arg, ep, nullptr, acceptor);
-}
-
-static void custom_accept_callback(grpc_custom_socket* socket,
- grpc_custom_socket* client,
- grpc_error_handle error);
-
-static void custom_accept_callback(grpc_custom_socket* socket,
- grpc_custom_socket* client,
- grpc_error_handle error) {
- grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
- grpc_core::ExecCtx exec_ctx;
- grpc_tcp_listener* sp = socket->listener;
- if (error != GRPC_ERROR_NONE) {
- if (!sp->closed) {
- gpr_log(GPR_ERROR, "Accept failed: %s",
- grpc_error_std_string(error).c_str());
- }
- gpr_free(client);
- GRPC_ERROR_UNREF(error);
- return;
- }
- finish_accept(sp, client);
- if (!sp->closed) {
- grpc_custom_socket* new_socket = static_cast(
- gpr_malloc(sizeof(grpc_custom_socket)));
- new_socket->endpoint = nullptr;
- new_socket->listener = nullptr;
- new_socket->connector = nullptr;
- new_socket->refs = 1;
- grpc_custom_socket_vtable->accept(sp->socket, new_socket,
- custom_accept_callback);
- }
-}
-
-static grpc_error_handle add_socket_to_server(grpc_tcp_server* s,
- grpc_custom_socket* socket,
- const grpc_resolved_address* addr,
- unsigned port_index,
- grpc_tcp_listener** listener) {
- grpc_tcp_listener* sp = nullptr;
- int port = -1;
- grpc_error_handle error;
- grpc_resolved_address sockname_temp;
-
- // NOTE(lidiz) The last argument is "flags" which is unused by other
- // implementations. Python IO managers uses it to specify SO_REUSEPORT.
- int flags = 0;
- if (s->so_reuseport) {
- flags |= GRPC_CUSTOM_SOCKET_OPT_SO_REUSEPORT;
- }
-
- error = grpc_custom_socket_vtable->bind(
- socket, reinterpret_cast(const_cast(addr->addr)),
- addr->len, flags);
- if (error != GRPC_ERROR_NONE) {
- return error;
- }
-
- error = grpc_custom_socket_vtable->listen(socket);
- if (error != GRPC_ERROR_NONE) {
- return error;
- }
-
- sockname_temp.len = GRPC_MAX_SOCKADDR_SIZE;
- error = grpc_custom_socket_vtable->getsockname(
- socket, reinterpret_cast(&sockname_temp.addr),
- reinterpret_cast(&sockname_temp.len));
- if (error != GRPC_ERROR_NONE) {
- return error;
- }
-
- port = grpc_sockaddr_get_port(&sockname_temp);
-
- GPR_ASSERT(port >= 0);
- GPR_ASSERT(!s->on_accept_cb && "must add ports before starting server");
- sp = grpc_core::Zalloc();
- sp->next = nullptr;
- if (s->head == nullptr) {
- s->head = sp;
- } else {
- s->tail->next = sp;
- }
- s->tail = sp;
- sp->server = s;
- sp->socket = socket;
- sp->port = port;
- sp->port_index = port_index;
- sp->closed = false;
- s->open_ports++;
- *listener = sp;
-
- return GRPC_ERROR_NONE;
-}
-
-static grpc_error_handle tcp_server_add_port(grpc_tcp_server* s,
- const grpc_resolved_address* addr,
- int* port) {
- // This function is mostly copied from tcp_server_windows.c
- grpc_tcp_listener* sp = nullptr;
- grpc_custom_socket* socket;
- grpc_resolved_address addr6_v4mapped;
- grpc_resolved_address wildcard;
- grpc_resolved_address* allocated_addr = nullptr;
- grpc_resolved_address sockname_temp;
- unsigned port_index = 0;
- grpc_error_handle error = GRPC_ERROR_NONE;
- int family;
-
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
-
- if (s->tail != nullptr) {
- port_index = s->tail->port_index + 1;
- }
-
- /* Check if this is a wildcard port, and if so, try to keep the port the same
- as some previously created listener. */
- if (grpc_sockaddr_get_port(addr) == 0) {
- for (sp = s->head; sp; sp = sp->next) {
- socket = sp->socket;
- sockname_temp.len = GRPC_MAX_SOCKADDR_SIZE;
- if (grpc_custom_socket_vtable->getsockname(
- socket, reinterpret_cast(&sockname_temp.addr),
- reinterpret_cast(&sockname_temp.len)) == GRPC_ERROR_NONE) {
- *port = grpc_sockaddr_get_port(&sockname_temp);
- if (*port > 0) {
- allocated_addr = static_cast(
- gpr_malloc(sizeof(grpc_resolved_address)));
- memcpy(allocated_addr, addr, sizeof(grpc_resolved_address));
- grpc_sockaddr_set_port(allocated_addr, *port);
- addr = allocated_addr;
- break;
- }
- }
- }
- }
-
- if (grpc_sockaddr_to_v4mapped(addr, &addr6_v4mapped)) {
- addr = &addr6_v4mapped;
- }
-
- /* Treat :: or 0.0.0.0 as a family-agnostic wildcard. */
- if (grpc_sockaddr_is_wildcard(addr, port)) {
- grpc_sockaddr_make_wildcard6(*port, &wildcard);
-
- addr = &wildcard;
- }
-
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
- gpr_log(GPR_INFO, "SERVER %p add_port %s error=%s", s,
- grpc_sockaddr_to_string(addr, false).c_str(),
- grpc_error_std_string(error).c_str());
- }
-
- family = grpc_sockaddr_get_family(addr);
- socket =
- static_cast(gpr_malloc(sizeof(grpc_custom_socket)));
- socket->refs = 1;
- socket->endpoint = nullptr;
- socket->listener = nullptr;
- socket->connector = nullptr;
- error = grpc_custom_socket_vtable->init(socket, family);
-
- if (error == GRPC_ERROR_NONE) {
- error = add_socket_to_server(s, socket, addr, port_index, &sp);
- }
- gpr_free(allocated_addr);
-
- if (error != GRPC_ERROR_NONE) {
- grpc_error_handle error_out =
- GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
- "Failed to add port to server", &error, 1);
- GRPC_ERROR_UNREF(error);
- error = error_out;
- *port = -1;
- } else {
- GPR_ASSERT(sp != nullptr);
- *port = sp->port;
- }
- socket->listener = sp;
- return error;
-}
-
-static void tcp_server_start(grpc_tcp_server* server,
- const std::vector* /*pollsets*/,
- grpc_tcp_server_cb on_accept_cb, void* cb_arg) {
- grpc_tcp_listener* sp;
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
- gpr_log(GPR_INFO, "SERVER_START %p", server);
- }
- GPR_ASSERT(on_accept_cb);
- GPR_ASSERT(!server->on_accept_cb);
- server->on_accept_cb = on_accept_cb;
- server->on_accept_cb_arg = cb_arg;
- for (sp = server->head; sp; sp = sp->next) {
- grpc_custom_socket* new_socket = static_cast(
- gpr_malloc(sizeof(grpc_custom_socket)));
- new_socket->endpoint = nullptr;
- new_socket->listener = nullptr;
- new_socket->connector = nullptr;
- new_socket->refs = 1;
- grpc_custom_socket_vtable->accept(sp->socket, new_socket,
- custom_accept_callback);
- }
-}
-
-static unsigned tcp_server_port_fd_count(grpc_tcp_server* /*s*/,
- unsigned /*port_index*/) {
- return 0;
-}
-
-static int tcp_server_port_fd(grpc_tcp_server* /*s*/, unsigned /*port_index*/,
- unsigned /*fd_index*/) {
- return -1;
-}
-
-static void tcp_server_shutdown_listeners(grpc_tcp_server* s) {
- for (grpc_tcp_listener* sp = s->head; sp; sp = sp->next) {
- if (!sp->closed) {
- sp->closed = true;
- grpc_custom_socket_vtable->close(sp->socket, custom_close_callback);
- }
- }
-}
-
-static grpc_core::TcpServerFdHandler* tcp_server_create_fd_handler(
- grpc_tcp_server* /*s*/) {
- return nullptr;
-}
-
-grpc_tcp_server_vtable custom_tcp_server_vtable = {
- tcp_server_create, tcp_server_start,
- tcp_server_add_port, tcp_server_create_fd_handler,
- tcp_server_port_fd_count, tcp_server_port_fd,
- tcp_server_ref, tcp_server_shutdown_starting_add,
- tcp_server_unref, tcp_server_shutdown_listeners};
diff --git a/src/core/lib/iomgr/timer_custom.cc b/src/core/lib/iomgr/timer_custom.cc
deleted file mode 100644
index 90629665fea..00000000000
--- a/src/core/lib/iomgr/timer_custom.cc
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- *
- * Copyright 2017 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
-
-#include "src/core/lib/iomgr/timer_custom.h"
-
-#include
-#include
-
-#include "src/core/lib/debug/trace.h"
-#include "src/core/lib/iomgr/iomgr_custom.h"
-#include "src/core/lib/iomgr/port.h"
-#include "src/core/lib/iomgr/timer.h"
-
-static grpc_custom_timer_vtable* custom_timer_impl;
-
-void grpc_custom_timer_callback(grpc_custom_timer* t,
- grpc_error_handle /*error*/) {
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
- grpc_core::ExecCtx exec_ctx;
- grpc_timer* timer = t->original;
- GPR_ASSERT(timer->pending);
- timer->pending = false;
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, timer->closure, GRPC_ERROR_NONE);
- custom_timer_impl->stop(t);
- gpr_free(t);
-}
-
-static void timer_init(grpc_timer* timer, grpc_millis deadline,
- grpc_closure* closure) {
- uint64_t timeout;
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- grpc_millis now = grpc_core::ExecCtx::Get()->Now();
- if (deadline <= grpc_core::ExecCtx::Get()->Now()) {
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, GRPC_ERROR_NONE);
- timer->pending = false;
- return;
- } else {
- timeout = deadline - now;
- }
- timer->pending = true;
- timer->closure = closure;
- grpc_custom_timer* timer_wrapper =
- static_cast(gpr_malloc(sizeof(grpc_custom_timer)));
- timer_wrapper->timeout_ms = timeout;
- timer->custom_timer = timer_wrapper;
- timer_wrapper->original = timer;
- custom_timer_impl->start(timer_wrapper);
-}
-
-static void timer_cancel(grpc_timer* timer) {
- GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
- grpc_custom_timer* tw = static_cast(timer->custom_timer);
- if (timer->pending) {
- timer->pending = false;
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, timer->closure,
- GRPC_ERROR_CANCELLED);
- custom_timer_impl->stop(tw);
- gpr_free(tw);
- }
-}
-
-static grpc_timer_check_result timer_check(grpc_millis* /*next*/) {
- return GRPC_TIMERS_NOT_CHECKED;
-}
-
-static void timer_list_init() {}
-static void timer_list_shutdown() {}
-
-static void timer_consume_kick(void) {}
-
-static grpc_timer_vtable custom_timer_vtable = {
- timer_init, timer_cancel, timer_check,
- timer_list_init, timer_list_shutdown, timer_consume_kick};
-
-void grpc_custom_timer_init(grpc_custom_timer_vtable* impl) {
- custom_timer_impl = impl;
- grpc_set_timer_impl(&custom_timer_vtable);
-}
diff --git a/src/core/lib/iomgr/timer_custom.h b/src/core/lib/iomgr/timer_custom.h
deleted file mode 100644
index 83c3e8ddab9..00000000000
--- a/src/core/lib/iomgr/timer_custom.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *
- * Copyright 2018 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.
- *
- */
-
-#ifndef GRPC_CORE_LIB_IOMGR_TIMER_CUSTOM_H
-#define GRPC_CORE_LIB_IOMGR_TIMER_CUSTOM_H
-
-#include
-
-#include "src/core/lib/iomgr/timer.h"
-
-typedef struct grpc_custom_timer {
- // Implementation defined
- void* timer;
- uint64_t timeout_ms;
-
- grpc_timer* original;
-} grpc_custom_timer;
-
-typedef struct grpc_custom_timer_vtable {
- void (*start)(grpc_custom_timer* t);
- void (*stop)(grpc_custom_timer* t);
-} grpc_custom_timer_vtable;
-
-void grpc_custom_timer_init(grpc_custom_timer_vtable* impl);
-
-void grpc_custom_timer_callback(grpc_custom_timer* t, grpc_error_handle error);
-
-#endif /* GRPC_CORE_LIB_IOMGR_TIMER_CUSTOM_H */
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index 24d72c29b23..62ab2d01cea 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -523,7 +523,6 @@ CORE_SOURCE_FILES = [
'src/core/lib/iomgr/internal_errqueue.cc',
'src/core/lib/iomgr/iocp_windows.cc',
'src/core/lib/iomgr/iomgr.cc',
- 'src/core/lib/iomgr/iomgr_custom.cc',
'src/core/lib/iomgr/iomgr_internal.cc',
'src/core/lib/iomgr/iomgr_posix.cc',
'src/core/lib/iomgr/iomgr_posix_cfstream.cc',
@@ -533,13 +532,10 @@ CORE_SOURCE_FILES = [
'src/core/lib/iomgr/lockfree_event.cc',
'src/core/lib/iomgr/polling_entity.cc',
'src/core/lib/iomgr/pollset.cc',
- 'src/core/lib/iomgr/pollset_custom.cc',
'src/core/lib/iomgr/pollset_set.cc',
- 'src/core/lib/iomgr/pollset_set_custom.cc',
'src/core/lib/iomgr/pollset_set_windows.cc',
'src/core/lib/iomgr/pollset_windows.cc',
'src/core/lib/iomgr/resolve_address.cc',
- 'src/core/lib/iomgr/resolve_address_custom.cc',
'src/core/lib/iomgr/resolve_address_posix.cc',
'src/core/lib/iomgr/resolve_address_windows.cc',
'src/core/lib/iomgr/socket_factory_posix.cc',
@@ -551,13 +547,10 @@ CORE_SOURCE_FILES = [
'src/core/lib/iomgr/socket_windows.cc',
'src/core/lib/iomgr/tcp_client.cc',
'src/core/lib/iomgr/tcp_client_cfstream.cc',
- 'src/core/lib/iomgr/tcp_client_custom.cc',
'src/core/lib/iomgr/tcp_client_posix.cc',
'src/core/lib/iomgr/tcp_client_windows.cc',
- 'src/core/lib/iomgr/tcp_custom.cc',
'src/core/lib/iomgr/tcp_posix.cc',
'src/core/lib/iomgr/tcp_server.cc',
- 'src/core/lib/iomgr/tcp_server_custom.cc',
'src/core/lib/iomgr/tcp_server_posix.cc',
'src/core/lib/iomgr/tcp_server_utils_posix_common.cc',
'src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc',
@@ -566,7 +559,6 @@ CORE_SOURCE_FILES = [
'src/core/lib/iomgr/tcp_windows.cc',
'src/core/lib/iomgr/time_averaged_stats.cc',
'src/core/lib/iomgr/timer.cc',
- 'src/core/lib/iomgr/timer_custom.cc',
'src/core/lib/iomgr/timer_generic.cc',
'src/core/lib/iomgr/timer_heap.cc',
'src/core/lib/iomgr/timer_manager.cc',
diff --git a/test/core/iomgr/timer_list_test.cc b/test/core/iomgr/timer_list_test.cc
index b7640ee6bc8..0f3a6d213af 100644
--- a/test/core/iomgr/timer_list_test.cc
+++ b/test/core/iomgr/timer_list_test.cc
@@ -16,11 +16,6 @@
*
*/
-#include "src/core/lib/iomgr/port.h"
-
-// This test only works with the generic timer implementation
-#ifndef GRPC_CUSTOM_SOCKET
-
#include
#include
@@ -28,6 +23,7 @@
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
+#include "src/core/lib/iomgr/port.h"
#include "src/core/lib/iomgr/timer.h"
#include "test/core/util/test_config.h"
#include "test/core/util/tracer_util.h"
@@ -257,9 +253,3 @@ int main(int argc, char** argv) {
return 0;
}
-
-#else /* GRPC_CUSTOM_SOCKET */
-
-int main(int argc, char** argv) { return 1; }
-
-#endif /* GRPC_CUSTOM_SOCKET */
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index 1631065a69b..60ecfff1cd6 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -2076,8 +2076,6 @@ src/core/lib/iomgr/iocp_windows.cc \
src/core/lib/iomgr/iocp_windows.h \
src/core/lib/iomgr/iomgr.cc \
src/core/lib/iomgr/iomgr.h \
-src/core/lib/iomgr/iomgr_custom.cc \
-src/core/lib/iomgr/iomgr_custom.h \
src/core/lib/iomgr/iomgr_internal.cc \
src/core/lib/iomgr/iomgr_internal.h \
src/core/lib/iomgr/iomgr_posix.cc \
@@ -2094,12 +2092,8 @@ src/core/lib/iomgr/polling_entity.cc \
src/core/lib/iomgr/polling_entity.h \
src/core/lib/iomgr/pollset.cc \
src/core/lib/iomgr/pollset.h \
-src/core/lib/iomgr/pollset_custom.cc \
-src/core/lib/iomgr/pollset_custom.h \
src/core/lib/iomgr/pollset_set.cc \
src/core/lib/iomgr/pollset_set.h \
-src/core/lib/iomgr/pollset_set_custom.cc \
-src/core/lib/iomgr/pollset_set_custom.h \
src/core/lib/iomgr/pollset_set_windows.cc \
src/core/lib/iomgr/pollset_set_windows.h \
src/core/lib/iomgr/pollset_windows.cc \
@@ -2108,8 +2102,6 @@ src/core/lib/iomgr/port.h \
src/core/lib/iomgr/python_util.h \
src/core/lib/iomgr/resolve_address.cc \
src/core/lib/iomgr/resolve_address.h \
-src/core/lib/iomgr/resolve_address_custom.cc \
-src/core/lib/iomgr/resolve_address_custom.h \
src/core/lib/iomgr/resolve_address_impl.h \
src/core/lib/iomgr/resolve_address_posix.cc \
src/core/lib/iomgr/resolve_address_posix.h \
@@ -2135,17 +2127,13 @@ src/core/lib/iomgr/sys_epoll_wrapper.h \
src/core/lib/iomgr/tcp_client.cc \
src/core/lib/iomgr/tcp_client.h \
src/core/lib/iomgr/tcp_client_cfstream.cc \
-src/core/lib/iomgr/tcp_client_custom.cc \
src/core/lib/iomgr/tcp_client_posix.cc \
src/core/lib/iomgr/tcp_client_posix.h \
src/core/lib/iomgr/tcp_client_windows.cc \
-src/core/lib/iomgr/tcp_custom.cc \
-src/core/lib/iomgr/tcp_custom.h \
src/core/lib/iomgr/tcp_posix.cc \
src/core/lib/iomgr/tcp_posix.h \
src/core/lib/iomgr/tcp_server.cc \
src/core/lib/iomgr/tcp_server.h \
-src/core/lib/iomgr/tcp_server_custom.cc \
src/core/lib/iomgr/tcp_server_posix.cc \
src/core/lib/iomgr/tcp_server_utils_posix.h \
src/core/lib/iomgr/tcp_server_utils_posix_common.cc \
@@ -2158,8 +2146,6 @@ src/core/lib/iomgr/time_averaged_stats.cc \
src/core/lib/iomgr/time_averaged_stats.h \
src/core/lib/iomgr/timer.cc \
src/core/lib/iomgr/timer.h \
-src/core/lib/iomgr/timer_custom.cc \
-src/core/lib/iomgr/timer_custom.h \
src/core/lib/iomgr/timer_generic.cc \
src/core/lib/iomgr/timer_generic.h \
src/core/lib/iomgr/timer_heap.cc \
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index e0b92bcbb54..3e7801bca08 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -1871,8 +1871,6 @@ src/core/lib/iomgr/iocp_windows.cc \
src/core/lib/iomgr/iocp_windows.h \
src/core/lib/iomgr/iomgr.cc \
src/core/lib/iomgr/iomgr.h \
-src/core/lib/iomgr/iomgr_custom.cc \
-src/core/lib/iomgr/iomgr_custom.h \
src/core/lib/iomgr/iomgr_internal.cc \
src/core/lib/iomgr/iomgr_internal.h \
src/core/lib/iomgr/iomgr_posix.cc \
@@ -1889,12 +1887,8 @@ src/core/lib/iomgr/polling_entity.cc \
src/core/lib/iomgr/polling_entity.h \
src/core/lib/iomgr/pollset.cc \
src/core/lib/iomgr/pollset.h \
-src/core/lib/iomgr/pollset_custom.cc \
-src/core/lib/iomgr/pollset_custom.h \
src/core/lib/iomgr/pollset_set.cc \
src/core/lib/iomgr/pollset_set.h \
-src/core/lib/iomgr/pollset_set_custom.cc \
-src/core/lib/iomgr/pollset_set_custom.h \
src/core/lib/iomgr/pollset_set_windows.cc \
src/core/lib/iomgr/pollset_set_windows.h \
src/core/lib/iomgr/pollset_windows.cc \
@@ -1903,8 +1897,6 @@ src/core/lib/iomgr/port.h \
src/core/lib/iomgr/python_util.h \
src/core/lib/iomgr/resolve_address.cc \
src/core/lib/iomgr/resolve_address.h \
-src/core/lib/iomgr/resolve_address_custom.cc \
-src/core/lib/iomgr/resolve_address_custom.h \
src/core/lib/iomgr/resolve_address_impl.h \
src/core/lib/iomgr/resolve_address_posix.cc \
src/core/lib/iomgr/resolve_address_posix.h \
@@ -1930,17 +1922,13 @@ src/core/lib/iomgr/sys_epoll_wrapper.h \
src/core/lib/iomgr/tcp_client.cc \
src/core/lib/iomgr/tcp_client.h \
src/core/lib/iomgr/tcp_client_cfstream.cc \
-src/core/lib/iomgr/tcp_client_custom.cc \
src/core/lib/iomgr/tcp_client_posix.cc \
src/core/lib/iomgr/tcp_client_posix.h \
src/core/lib/iomgr/tcp_client_windows.cc \
-src/core/lib/iomgr/tcp_custom.cc \
-src/core/lib/iomgr/tcp_custom.h \
src/core/lib/iomgr/tcp_posix.cc \
src/core/lib/iomgr/tcp_posix.h \
src/core/lib/iomgr/tcp_server.cc \
src/core/lib/iomgr/tcp_server.h \
-src/core/lib/iomgr/tcp_server_custom.cc \
src/core/lib/iomgr/tcp_server_posix.cc \
src/core/lib/iomgr/tcp_server_utils_posix.h \
src/core/lib/iomgr/tcp_server_utils_posix_common.cc \
@@ -1953,8 +1941,6 @@ src/core/lib/iomgr/time_averaged_stats.cc \
src/core/lib/iomgr/time_averaged_stats.h \
src/core/lib/iomgr/timer.cc \
src/core/lib/iomgr/timer.h \
-src/core/lib/iomgr/timer_custom.cc \
-src/core/lib/iomgr/timer_custom.h \
src/core/lib/iomgr/timer_generic.cc \
src/core/lib/iomgr/timer_generic.h \
src/core/lib/iomgr/timer_heap.cc \