X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Flibmemcached%2Ffetch.cc;fp=src%2Flibmemcached%2Ffetch.cc;h=fee6a10d219d12cd36ef0523311803cb1f93696c;hb=9f88736f8219b494025465089655609f636bf1d7;hp=d7feaca7c5c7245eeb11a2a01a4200898157541f;hpb=4b7c2c7987bbac32560395e199fe3879c1fb3991;p=awesomized%2Flibmemcached diff --git a/src/libmemcached/fetch.cc b/src/libmemcached/fetch.cc index d7feaca7..fee6a10d 100644 --- a/src/libmemcached/fetch.cc +++ b/src/libmemcached/fetch.cc @@ -141,6 +141,7 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr, memcached_result_ memcached_instance_st *server; memcached_return_t read_ret = MEMCACHED_SUCCESS; bool connection_failures = false; + bool timeouts = false; while ((server = memcached_io_get_readable_server(ptr, read_ret))) { char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE]; *error = memcached_response(server, buffer, sizeof(buffer), result); @@ -150,6 +151,8 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr, memcached_result_ } else if (*error == MEMCACHED_CONNECTION_FAILURE) { connection_failures = true; continue; + } else if (*error == MEMCACHED_TIMEOUT) { + timeouts = true; } else if (*error == MEMCACHED_SUCCESS) { result->count++; return result; @@ -175,6 +178,8 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr, memcached_result_ that. */ *error = MEMCACHED_CONNECTION_FAILURE; + } else if (timeouts) { + *error = MEMCACHED_TIMEOUT; } else if (*error == MEMCACHED_SUCCESS) { *error = MEMCACHED_END; } else if (result->count == 0) {