From 29efc7812e276e046e397b286434cc81dab12f8d Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 6 Feb 2020 18:48:04 +0500 Subject: [PATCH] Add cancel\rollback timeout --- sources/backend.c | 4 ++-- sources/backend.h | 2 +- sources/reset.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sources/backend.c b/sources/backend.c index 3843cbd9..b7dc5a75 100644 --- a/sources/backend.c +++ b/sources/backend.c @@ -512,7 +512,7 @@ od_backend_ready_wait(od_server_t *server, char *context, int count, } int -od_backend_query(od_server_t *server, char *context, char *query, int len) +od_backend_query(od_server_t *server, char *context, char *query, int len, uint32_t timeout) { od_instance_t *instance = server->global->instance; @@ -532,6 +532,6 @@ od_backend_query(od_server_t *server, char *context, char *query, int len) /* update server sync state */ od_server_sync_request(server, 1); - rc = od_backend_ready_wait(server, context, 1, UINT32_MAX); + rc = od_backend_ready_wait(server, context, 1, timeout); return rc; } diff --git a/sources/backend.h b/sources/backend.h index 72099d05..83d9bbe1 100644 --- a/sources/backend.h +++ b/sources/backend.h @@ -15,6 +15,6 @@ void od_backend_error(od_server_t*, char*, char*, uint32_t); int od_backend_update_parameter(od_server_t*, char*, char*, uint32_t, int); int od_backend_ready(od_server_t*, char*, uint32_t); int od_backend_ready_wait(od_server_t*, char*, int, uint32_t); -int od_backend_query(od_server_t*, char*, char*, int); +int od_backend_query(od_server_t*, char*, char*, int, uint32_t); #endif /* ODYSSEY_BACKEND_H */ diff --git a/sources/reset.c b/sources/reset.c index b4b00b9d..144e6c12 100644 --- a/sources/reset.c +++ b/sources/reset.c @@ -118,7 +118,7 @@ od_reset(od_server_t *server) if (server->is_transaction) { char query_rlb[] = "ROLLBACK"; rc = od_backend_query(server, "reset-rollback", query_rlb, - sizeof(query_rlb)); + sizeof(query_rlb), wait_timeout); if (rc == -1) goto error; assert(! server->is_transaction); @@ -129,7 +129,7 @@ od_reset(od_server_t *server) if (route->rule->pool_discard) { char query_discard[] = "DISCARD ALL"; rc = od_backend_query(server, "reset-discard", query_discard, - sizeof(query_discard)); + sizeof(query_discard), wait_timeout); if (rc == -1) goto error; }