|
|
|
@ -59,9 +59,9 @@ |
|
|
|
|
#define INTERNAL_REF_BITS 16 |
|
|
|
|
#define STRONG_REF_MASK (~(gpr_atm)((1 << INTERNAL_REF_BITS) - 1)) |
|
|
|
|
|
|
|
|
|
#define GRPC_SUBCHANNEL_MIN_CONNECT_TIMEOUT_SECONDS 20 |
|
|
|
|
#define GRPC_SUBCHANNEL_INITIAL_CONNECT_BACKOFF_SECONDS 1 |
|
|
|
|
#define GRPC_SUBCHANNEL_RECONNECT_BACKOFF_MULTIPLIER 1.6 |
|
|
|
|
#define GRPC_SUBCHANNEL_RECONNECT_MIN_BACKOFF_SECONDS 20 |
|
|
|
|
#define GRPC_SUBCHANNEL_RECONNECT_MAX_BACKOFF_SECONDS 120 |
|
|
|
|
#define GRPC_SUBCHANNEL_RECONNECT_JITTER 0.2 |
|
|
|
|
|
|
|
|
@ -353,8 +353,8 @@ grpc_subchannel *grpc_subchannel_create(grpc_exec_ctx *exec_ctx, |
|
|
|
|
"subchannel"); |
|
|
|
|
int initial_backoff_ms = |
|
|
|
|
GRPC_SUBCHANNEL_INITIAL_CONNECT_BACKOFF_SECONDS * 1000; |
|
|
|
|
int min_backoff_ms = GRPC_SUBCHANNEL_RECONNECT_MIN_BACKOFF_SECONDS * 1000; |
|
|
|
|
int max_backoff_ms = GRPC_SUBCHANNEL_RECONNECT_MAX_BACKOFF_SECONDS * 1000; |
|
|
|
|
int min_backoff_ms = GRPC_SUBCHANNEL_MIN_CONNECT_TIMEOUT_SECONDS * 1000; |
|
|
|
|
bool fixed_reconnect_backoff = false; |
|
|
|
|
if (c->args) { |
|
|
|
|
for (size_t i = 0; i < c->args->num_args; i++) { |
|
|
|
@ -365,6 +365,12 @@ grpc_subchannel *grpc_subchannel_create(grpc_exec_ctx *exec_ctx, |
|
|
|
|
grpc_channel_arg_get_integer( |
|
|
|
|
&c->args->args[i], |
|
|
|
|
(grpc_integer_options){initial_backoff_ms, 100, INT_MAX}); |
|
|
|
|
} else if (0 == strcmp(c->args->args[i].key, |
|
|
|
|
GRPC_ARG_MIN_RECONNECT_BACKOFF_MS)) { |
|
|
|
|
fixed_reconnect_backoff = false; |
|
|
|
|
min_backoff_ms = grpc_channel_arg_get_integer( |
|
|
|
|
&c->args->args[i], |
|
|
|
|
(grpc_integer_options){min_backoff_ms, 100, INT_MAX}); |
|
|
|
|
} else if (0 == strcmp(c->args->args[i].key, |
|
|
|
|
GRPC_ARG_MAX_RECONNECT_BACKOFF_MS)) { |
|
|
|
|
fixed_reconnect_backoff = false; |
|
|
|
|