X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=clients%2Fexecute.cc;h=f877851e8adb50743779f0cee7844af535df3f1d;hb=728ffce13e3e3b78d0144ea1e304dee1c1055384;hp=1ada836f0345c61e82df361d3549618a7750dc19;hpb=6b2e8e60c388754cbe4f9bb3eb38f870544615c8;p=m6w6%2Flibmemcached diff --git a/clients/execute.cc b/clients/execute.cc index 1ada836f..f877851e 100644 --- a/clients/execute.cc +++ b/clients/execute.cc @@ -15,7 +15,7 @@ */ #include -#include "execute.h" +#include "clients/execute.h" unsigned int execute_set(memcached_st *memc, pairs_st *pairs, unsigned int number_of) { @@ -27,10 +27,15 @@ unsigned int execute_set(memcached_st *memc, pairs_st *pairs, unsigned int numbe memcached_return_t rc= memcached_set(memc, pairs[x].key, pairs[x].key_length, pairs[x].value, pairs[x].value_length, 0, 0); - if (rc != MEMCACHED_SUCCESS && rc != MEMCACHED_BUFFERED) + if (memcached_failed(rc)) { - fprintf(stderr, "Failured on insert of %.*s\n", + fprintf(stderr, "%s:%d Failure on insert (%s) of %.*s\n", + __FILE__, __LINE__, + memcached_last_error_message(memc), (unsigned int)pairs[x].key_length, pairs[x].key); + + // We will try to reconnect and see if that fixes the issue + memcached_quit(memc); } else { @@ -47,30 +52,34 @@ unsigned int execute_set(memcached_st *memc, pairs_st *pairs, unsigned int numbe */ unsigned int execute_get(memcached_st *memc, pairs_st *pairs, unsigned int number_of) { - memcached_return_t rc; unsigned int x; unsigned int retrieved; for (retrieved= 0,x= 0; x < number_of; x++) { - char *value; size_t value_length; uint32_t flags; - unsigned int fetch_key; - fetch_key= (unsigned int)((unsigned int)random() % number_of); + unsigned int fetch_key= (unsigned int)((unsigned int)random() % number_of); - value= memcached_get(memc, pairs[fetch_key].key, pairs[fetch_key].key_length, - &value_length, &flags, &rc); + memcached_return_t rc; + char *value= memcached_get(memc, pairs[fetch_key].key, pairs[fetch_key].key_length, + &value_length, &flags, &rc); - if (rc != MEMCACHED_SUCCESS) - fprintf(stderr, "Failured on read of %.*s\n", + if (memcached_failed(rc)) + { + fprintf(stderr, "%s:%d Failure on read(%s) of %.*s\n", + __FILE__, __LINE__, + memcached_last_error_message(memc), (unsigned int)pairs[fetch_key].key_length, pairs[fetch_key].key); + } else + { retrieved++; + } - free(value); + ::free(value); } return retrieved; @@ -116,7 +125,8 @@ unsigned int execute_mget(memcached_st *memc, rc= memcached_fetch_execute(memc, callbacks, (void *)&retrieved, 1); if (rc != MEMCACHED_SUCCESS && rc != MEMCACHED_NOTFOUND && rc != MEMCACHED_END) { - fprintf(stderr, "Failed to execute mget: %s\n", + fprintf(stderr, "%s:%d Failed to execute mget: %s\n", + __FILE__, __LINE__, memcached_strerror(memc, rc)); memcached_quit(memc); return 0; @@ -124,7 +134,8 @@ unsigned int execute_mget(memcached_st *memc, } else { - fprintf(stderr, "Failed to execute mget: %s\n", + fprintf(stderr, "%s:%d Failed to execute mget: %s\n", + __FILE__, __LINE__, memcached_strerror(memc, rc)); memcached_quit(memc); return 0;