From d61e37111d914eda867b455c94ebedf21b9e7612 Mon Sep 17 00:00:00 2001 From: Guantao Liu Date: Mon, 24 Jun 2019 14:58:30 -0700 Subject: [PATCH 1/4] Disable the backup poller in the client channel when using the background poller. Also, add the missing implementations of grpc_iomgr_run_in_background() for cfstream and libuv. --- src/core/ext/filters/client_channel/backup_poller.cc | 9 +++++---- src/core/lib/iomgr/iomgr_posix_cfstream.cc | 4 ++++ src/core/lib/iomgr/iomgr_uv.cc | 2 ++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/core/ext/filters/client_channel/backup_poller.cc b/src/core/ext/filters/client_channel/backup_poller.cc index 9e51a83415e..06a241aa8c6 100644 --- a/src/core/ext/filters/client_channel/backup_poller.cc +++ b/src/core/ext/filters/client_channel/backup_poller.cc @@ -16,18 +16,19 @@ * */ -#include - #include "src/core/ext/filters/client_channel/backup_poller.h" #include #include #include +#include #include + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/gprpp/global_config.h" #include "src/core/lib/iomgr/error.h" +#include "src/core/lib/iomgr/iomgr.h" #include "src/core/lib/iomgr/pollset.h" #include "src/core/lib/iomgr/timer.h" #include "src/core/lib/surface/channel.h" @@ -153,7 +154,7 @@ static void g_poller_init_locked() { void grpc_client_channel_start_backup_polling( grpc_pollset_set* interested_parties) { - if (g_poll_interval_ms == 0) { + if (g_poll_interval_ms == 0 || grpc_iomgr_run_in_background()) { return; } gpr_mu_lock(&g_poller_mu); @@ -171,7 +172,7 @@ void grpc_client_channel_start_backup_polling( void grpc_client_channel_stop_backup_polling( grpc_pollset_set* interested_parties) { - if (g_poll_interval_ms == 0) { + if (g_poll_interval_ms == 0 || grpc_iomgr_run_in_background()) { return; } grpc_pollset_set_del_pollset(interested_parties, g_poller->pollset); diff --git a/src/core/lib/iomgr/iomgr_posix_cfstream.cc b/src/core/lib/iomgr/iomgr_posix_cfstream.cc index cf4d05318ea..ac9a4497f77 100644 --- a/src/core/lib/iomgr/iomgr_posix_cfstream.cc +++ b/src/core/lib/iomgr/iomgr_posix_cfstream.cc @@ -90,4 +90,8 @@ void grpc_set_default_iomgr_platform() { grpc_set_iomgr_platform_vtable(&vtable); } +bool grpc_iomgr_run_in_background() { + return grpc_event_engine_run_in_background(); +} + #endif /* GRPC_CFSTREAM_IOMGR */ diff --git a/src/core/lib/iomgr/iomgr_uv.cc b/src/core/lib/iomgr/iomgr_uv.cc index 4a984446dba..d00bfa4d46e 100644 --- a/src/core/lib/iomgr/iomgr_uv.cc +++ b/src/core/lib/iomgr/iomgr_uv.cc @@ -37,4 +37,6 @@ void grpc_set_default_iomgr_platform() { grpc_custom_iomgr_init(&grpc_uv_socket_vtable, &uv_resolver_vtable, &uv_timer_vtable, &uv_pollset_vtable); } + +bool grpc_iomgr_run_in_background() { return false; } #endif From 8f30132877c97ec79aa0f087ad4aece9c37ef35e Mon Sep 17 00:00:00 2001 From: Guantao Liu Date: Mon, 24 Jun 2019 21:15:01 -0700 Subject: [PATCH 2/4] Revert the previous clang-format changes to pass the clang format check on github. --- src/core/ext/filters/client_channel/backup_poller.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/ext/filters/client_channel/backup_poller.cc b/src/core/ext/filters/client_channel/backup_poller.cc index 06a241aa8c6..2e2d8d607de 100644 --- a/src/core/ext/filters/client_channel/backup_poller.cc +++ b/src/core/ext/filters/client_channel/backup_poller.cc @@ -16,12 +16,13 @@ * */ +#include + #include "src/core/ext/filters/client_channel/backup_poller.h" #include #include #include -#include #include #include "src/core/ext/filters/client_channel/client_channel.h" From 7610817bc860d9f25fc76277684b6d6a90d9784e Mon Sep 17 00:00:00 2001 From: Guantao Liu Date: Wed, 26 Jun 2019 17:38:17 -0700 Subject: [PATCH 3/4] Also add the missing implementation of grpc_iomgr_run_in_background() for gevent. --- src/core/lib/iomgr/iomgr_custom.cc | 2 ++ src/core/lib/iomgr/iomgr_uv.cc | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/lib/iomgr/iomgr_custom.cc b/src/core/lib/iomgr/iomgr_custom.cc index f5ac8a0670a..262417cf0d2 100644 --- a/src/core/lib/iomgr/iomgr_custom.cc +++ b/src/core/lib/iomgr/iomgr_custom.cc @@ -72,6 +72,8 @@ void grpc_custom_iomgr_init(grpc_socket_vtable* socket, grpc_set_iomgr_platform_vtable(&vtable); } +bool grpc_iomgr_run_in_background() { return false; } + #ifdef GRPC_CUSTOM_SOCKET grpc_iomgr_platform_vtable* grpc_default_iomgr_platform_vtable() { return &vtable; diff --git a/src/core/lib/iomgr/iomgr_uv.cc b/src/core/lib/iomgr/iomgr_uv.cc index d00bfa4d46e..4a984446dba 100644 --- a/src/core/lib/iomgr/iomgr_uv.cc +++ b/src/core/lib/iomgr/iomgr_uv.cc @@ -37,6 +37,4 @@ void grpc_set_default_iomgr_platform() { grpc_custom_iomgr_init(&grpc_uv_socket_vtable, &uv_resolver_vtable, &uv_timer_vtable, &uv_pollset_vtable); } - -bool grpc_iomgr_run_in_background() { return false; } #endif From 9f59029aee2d613002b650420ef7dc0129991ad7 Mon Sep 17 00:00:00 2001 From: Guantao Liu Date: Thu, 27 Jun 2019 20:54:51 -0700 Subject: [PATCH 4/4] Revert the implementation of grpc_iomgr_run_in_background() for gevent, which causes duplicate definitions. --- src/core/lib/iomgr/iomgr_custom.cc | 2 -- src/core/lib/iomgr/iomgr_uv.cc | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/lib/iomgr/iomgr_custom.cc b/src/core/lib/iomgr/iomgr_custom.cc index 262417cf0d2..f5ac8a0670a 100644 --- a/src/core/lib/iomgr/iomgr_custom.cc +++ b/src/core/lib/iomgr/iomgr_custom.cc @@ -72,8 +72,6 @@ void grpc_custom_iomgr_init(grpc_socket_vtable* socket, grpc_set_iomgr_platform_vtable(&vtable); } -bool grpc_iomgr_run_in_background() { return false; } - #ifdef GRPC_CUSTOM_SOCKET grpc_iomgr_platform_vtable* grpc_default_iomgr_platform_vtable() { return &vtable; diff --git a/src/core/lib/iomgr/iomgr_uv.cc b/src/core/lib/iomgr/iomgr_uv.cc index 4a984446dba..d00bfa4d46e 100644 --- a/src/core/lib/iomgr/iomgr_uv.cc +++ b/src/core/lib/iomgr/iomgr_uv.cc @@ -37,4 +37,6 @@ void grpc_set_default_iomgr_platform() { grpc_custom_iomgr_init(&grpc_uv_socket_vtable, &uv_resolver_vtable, &uv_timer_vtable, &uv_pollset_vtable); } + +bool grpc_iomgr_run_in_background() { return false; } #endif