X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fserver.hpp;h=582356d27bffe7cf5a79567845bdb3524e5f03aa;hb=61b948a92ab79734b009a438b5cf3bfad03cb59d;hp=708e64606610f462a73903fad188d6e5c1944c99;hpb=5356e466e864b310a0195b72ce232197827bbe4e;p=awesomized%2Flibmemcached diff --git a/libmemcached/server.hpp b/libmemcached/server.hpp index 708e6460..582356d2 100644 --- a/libmemcached/server.hpp +++ b/libmemcached/server.hpp @@ -76,7 +76,13 @@ static inline void memcached_mark_server_for_timeout(memcached_instance_st* serv { if (server->state != MEMCACHED_SERVER_STATE_IN_TIMEOUT) { - if (server->root->retry_timeout != 0) + if (server->server_timeout_counter_query_id != server->root->query_id) + { + server->server_timeout_counter++; + server->server_timeout_counter_query_id= server->root->query_id; + } + + if (server->server_timeout_counter >= server->root->server_timeout_limit) { struct timeval next_time; if (gettimeofday(&next_time, NULL) == 0) @@ -85,16 +91,16 @@ static inline void memcached_mark_server_for_timeout(memcached_instance_st* serv } else { - server->next_retry= 1; // Setting the value to 1 causes the timeout to occur immediatly + server->next_retry= 1; // Setting the value to 1 causes the timeout to occur immediately } server->state= MEMCACHED_SERVER_STATE_IN_TIMEOUT; + if (server->server_failure_counter_query_id != server->root->query_id) + { + server->server_failure_counter++; + server->server_failure_counter_query_id= server->root->query_id; + } + set_last_disconnected_host(server); } - if (server->server_failure_counter_query_id != server->root->query_id) - { - server->server_failure_counter++; - server->server_failure_counter_query_id= server->root->query_id; - } - set_last_disconnected_host(server); } }