testing: retry check for memcp
[awesomized/libmemcached] / src / bin / common / execute.cc
index f0a5e47e40e88dc86c594323f1116c25d149dd22..2e436af8a5ca0cbe79822712652411aaba519cb5 100644 (file)
@@ -1,38 +1,31 @@
-/* LibMemcached
- * Copyright (C) 2011-2012 Data Differential, http://datadifferential.com/
- * Copyright (C) 2006-2009 Brian Aker
- * All rights reserved.
- *
- * Use and distribution licensed under the BSD license.  See
- * the COPYING file in the parent directory for full text.
- *
- * Summary:
- *
- */
-
 /*
-  Execute a memcached_set() a set of pairs.
-  Return the number of rows set.
+    +--------------------------------------------------------------------+
+    | libmemcached - C/C++ Client Library for memcached                  |
+    +--------------------------------------------------------------------+
+    | Redistribution and use in source and binary forms, with or without |
+    | modification, are permitted under the terms of the BSD license.    |
+    | You should have received a copy of the license in a bundled file   |
+    | named LICENSE; in case you did not receive a copy you can review   |
+    | the terms online at: https://opensource.org/licenses/BSD-3-Clause  |
+    +--------------------------------------------------------------------+
+    | Copyright (c) 2006-2014 Brian Aker   https://datadifferential.com/ |
+    | Copyright (c) 2020 Michael Wallner   <mike@php.net>                |
+    +--------------------------------------------------------------------+
 */
 
 #include "mem_config.h"
 #include "execute.h"
 
-unsigned int execute_set(memcached_st *memc, pairs_st *pairs, unsigned int number_of)
-{
-  uint32_t count= 0;
-  for (; count < number_of; ++count)
-  {
-    memcached_return_t rc= memcached_set(memc, pairs[count].key, pairs[count].key_length,
-                                         pairs[count].value, pairs[count].value_length,
-                                         0, 0);
-    if (memcached_failed(rc))
-    {
-      fprintf(stderr, "%s:%d Failure on %u insert (%s) of %.*s\n",
-              __FILE__, __LINE__, count,
-              memcached_last_error_message(memc),
-              (unsigned int)pairs[count].key_length, pairs[count].key);
-      
+unsigned int execute_set(memcached_st *memc, pairs_st *pairs, unsigned int number_of) {
+  uint32_t count = 0;
+  for (; count < number_of; ++count) {
+    memcached_return_t rc = memcached_set(memc, pairs[count].key, pairs[count].key_length,
+                                          pairs[count].value, pairs[count].value_length, 0, 0);
+    if (memcached_failed(rc)) {
+      fprintf(stderr, "%s:%d Failure on %u insert (%s) of %.*s\n", __FILE__, __LINE__, count,
+              memcached_last_error_message(memc), (unsigned int) pairs[count].key_length,
+              pairs[count].key);
+
       // We will try to reconnect and see if that fixes the issue
       memcached_quit(memc);
 
@@ -47,32 +40,25 @@ unsigned int execute_set(memcached_st *memc, pairs_st *pairs, unsigned int numbe
   Execute a memcached_get() on a set of pairs.
   Return the number of rows retrieved.
 */
-unsigned int execute_get(memcached_st *memc, pairs_st *pairs, unsigned int number_of)
-{
+unsigned int execute_get(memcached_st *memc, pairs_st *pairs, unsigned int number_of) {
   unsigned int x;
   unsigned int retrieved;
 
-
-  for (retrieved= 0,x= 0; x < number_of; x++)
-  {
+  for (retrieved = 0, x = 0; x < number_of; x++) {
     size_t value_length;
     uint32_t flags;
 
-    unsigned int fetch_key= (unsigned int)((unsigned int)random() % number_of);
+    unsigned int fetch_key = (unsigned int) ((unsigned int) random() % number_of);
 
     memcached_return_t rc;
-    char *value= memcached_get(memc, pairs[fetch_key].key, pairs[fetch_key].key_length,
-                               &value_length, &flags, &rc);
-
-    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
-    {
+    char *value = memcached_get(memc, pairs[fetch_key].key, pairs[fetch_key].key_length,
+                                &value_length, &flags, &rc);
+
+    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++;
     }
 
@@ -85,14 +71,12 @@ unsigned int execute_get(memcached_st *memc, pairs_st *pairs, unsigned int numbe
 /**
  * Callback function to count the number of results
  */
-static memcached_return_t callback_counter(const memcached_st *ptr,
-                                           memcached_result_st *result,
-                                           void *context)
-{
-  (void)ptr;
-  (void)result;
-  unsigned int *counter= (unsigned int *)context;
-  *counter= *counter + 1;
+static memcached_return_t callback_counter(const memcached_st *ptr, memcached_result_st *result,
+                                           void *context) {
+  (void) ptr;
+  (void) result;
+  unsigned int *counter = (unsigned int *) context;
+  *counter = *counter + 1;
 
   return MEMCACHED_SUCCESS;
 }
@@ -105,34 +89,25 @@ static memcached_return_t callback_counter(const memcached_st *ptr,
  * @param number_of the number of keys to try to get
  * @return the number of keys received
  */
-unsigned int execute_mget(memcached_st *memc,
-                          const char * const *keys,
-                          size_t *key_length,
-                          unsigned int number_of)
-{
-  unsigned int retrieved= 0;
-  memcached_execute_fn callbacks[]= { callback_counter };
+unsigned int execute_mget(memcached_st *memc, const char *const *keys, size_t *key_length,
+                          unsigned int number_of) {
+  unsigned int retrieved = 0;
+  memcached_execute_fn callbacks[] = {callback_counter};
   memcached_return_t rc;
-  rc= memcached_mget_execute(memc, keys, key_length,
-                             (size_t)number_of, callbacks, &retrieved, 1);
+  rc = memcached_mget_execute(memc, keys, key_length, (size_t) number_of, callbacks, &retrieved, 1);
 
-  if (rc == MEMCACHED_SUCCESS || rc == MEMCACHED_NOTFOUND ||
-          rc == MEMCACHED_BUFFERED || rc == MEMCACHED_END)
+  if (rc == MEMCACHED_SUCCESS || rc == MEMCACHED_NOTFOUND || rc == MEMCACHED_BUFFERED
+      || rc == MEMCACHED_END)
   {
-    rc= memcached_fetch_execute(memc, callbacks, (void *)&retrieved, 1);
-    if (rc != MEMCACHED_SUCCESS && rc != MEMCACHED_NOTFOUND && rc != MEMCACHED_END)
-    {
-      fprintf(stderr, "%s:%d Failed to execute mget: %s\n",
-              __FILE__, __LINE__,
+    rc = memcached_fetch_execute(memc, callbacks, (void *) &retrieved, 1);
+    if (rc != MEMCACHED_SUCCESS && rc != MEMCACHED_NOTFOUND && rc != MEMCACHED_END) {
+      fprintf(stderr, "%s:%d Failed to execute mget: %s\n", __FILE__, __LINE__,
               memcached_strerror(memc, rc));
       memcached_quit(memc);
       return 0;
     }
-  }
-  else
-  {
-    fprintf(stderr, "%s:%d Failed to execute mget: %s\n",
-            __FILE__, __LINE__,
+  } else {
+    fprintf(stderr, "%s:%d Failed to execute mget: %s\n", __FILE__, __LINE__,
             memcached_strerror(memc, rc));
     memcached_quit(memc);
     return 0;