add macro SF_IS_SERVER_RETRIABLE_ERROR

connection_manager
YuQing 2021-01-19 17:00:50 +08:00
parent 6bea6c93a9
commit 8040af4743
2 changed files with 5 additions and 1 deletions

View File

@ -117,7 +117,7 @@
continue; \
} \
\
if (idempotency_enabled) { \
if (idempotency_enabled && !SF_IS_SERVER_RETRIABLE_ERROR(result)) { \
idempotency_client_channel_push( \
connection_params->channel, req_id); \
} \

View File

@ -63,6 +63,10 @@
#define SF_FORCE_CLOSE_CONNECTION_ERROR_MIN SF_RETRIABLE_ERROR_NOT_MASTER
#define SF_FORCE_CLOSE_CONNECTION_ERROR_MAX SF_RETRIABLE_ERROR_MAX
#define SF_IS_SERVER_RETRIABLE_ERROR(code) \
((code >= SF_RETRIABLE_ERROR_MIN && code <= SF_RETRIABLE_ERROR_MAX) || \
(code == EAGAIN))
#define SF_IS_RETRIABLE_ERROR(code) \
((code >= SF_RETRIABLE_ERROR_MIN && code <= SF_RETRIABLE_ERROR_MAX) || \
(code == EAGAIN) || is_network_error(code))