Go to the documentation of this file.
23 #include "absl/strings/string_view.h"
41 double expected_backoff = 1000.0, backoff;
48 "retry %2d:backoff %6.2fs,expected backoff %6.2fs, jitter %4.2f%%",
49 i, backoff / 1000.0, expected_backoff / 1000.0,
50 (backoff - expected_backoff) * 100.0 / expected_backoff);
51 expected_backoff *= 1.6;
52 int max_reconnect_backoff_ms = 120 * 1000;
53 if (
server->max_reconnect_backoff_ms > 0) {
54 max_reconnect_backoff_ms =
server->max_reconnect_backoff_ms;
56 if (expected_backoff > max_reconnect_backoff_ms) {
57 expected_backoff = max_reconnect_backoff_ms;
75 last_colon = peer.
rfind(
':');
76 if (
server->peer ==
nullptr) {
79 if (last_colon == std::string::npos) {
81 }
else if (peer.
compare(0,
static_cast<size_t>(last_colon),
89 new_tail->
next =
nullptr;
90 if (
server->tail ==
nullptr) {
94 server->tail->next = new_tail;
105 server->max_reconnect_backoff_ms = 0;
119 new_head =
server->head->next;
struct timestamp_list * next
std::chrono::duration< std::int_fast64_t > seconds
void test_tcp_server_init(test_tcp_server *server, grpc_tcp_server_cb on_connect, void *user_data)
void reconnect_server_destroy(reconnect_server *server)
void test_tcp_server_start(test_tcp_server *server, int port)
GPRAPI void gpr_free(void *ptr)
void reconnect_server_clear_timestamps(reconnect_server *server)
absl::string_view grpc_endpoint_get_peer(grpc_endpoint *ep)
GPRAPI void * gpr_malloc(size_t size)
void test_tcp_server_destroy(test_tcp_server *server)
GPRAPI gpr_timespec gpr_time_sub(gpr_timespec a, gpr_timespec b)
static void pretty_print_backoffs(reconnect_server *server)
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
static void on_connect(void *arg, grpc_endpoint *tcp, grpc_pollset *, grpc_tcp_server_acceptor *acceptor)
GPRAPI int32_t gpr_time_to_millis(gpr_timespec timespec)
void test_tcp_server_poll(test_tcp_server *server, int milliseconds)
void grpc_endpoint_shutdown(grpc_endpoint *ep, grpc_error_handle why)
void grpc_endpoint_destroy(grpc_endpoint *ep)
GPRAPI gpr_timespec gpr_now(gpr_clock_type clock)
#define GRPC_ERROR_CREATE_FROM_STATIC_STRING(desc)
size_type rfind(string_view s, size_type pos=npos) const noexcept
constexpr int compare(string_view x) const noexcept
void reconnect_server_poll(reconnect_server *server, int seconds)
void reconnect_server_start(reconnect_server *server, int port)
void reconnect_server_init(reconnect_server *server)
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:07