Added unlikely for branch predicition :)
author <brian@gir.lan> <>
Sun, 24 Feb 2008 18:51:14 +0000 (18:51 +0000)
committer <brian@gir.lan> <>
Sun, 24 Feb 2008 18:51:14 +0000 (18:51 +0000)
lib/common.h
lib/memcached_auto.c
lib/memcached_connect.c
lib/memcached_delete.c
lib/memcached_flush.c
lib/memcached_storage.c
lib/memcached_verbosity.c

index b09d54336d11152db4b8efda479a7e683e3d35c1..095b7f5e27e52172b309bb607f97069067d5c402 100644 (file)
 
 #include <libmemcached_config.h>
 
+#if !defined(__GNUC__) || (__GNUC__ == 2 && __GNUC_MINOR__ < 96)
+#define __builtin_expect(x, expected_value) (x)
+
+#define likely(x)       __builtin_expect((x),1)
+#define unlikely(x)     __builtin_expect((x),0)
+
+#else
+
+#define likely(x)       if((x))
+#define unlikely(x)     if((x))
+
+#endif
+
 #ifdef HAVE_DTRACE
 #define _DTRACE_VERSION 1
 #else
index 0d0fc91797141d32a50b934613a921d970773a7a..a607ed66e23298881c2ee5bfd6d3ea429aafbb62 100644 (file)
@@ -11,10 +11,10 @@ static memcached_return memcached_auto(memcached_st *ptr,
   char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
   unsigned int server_key;
 
-  if (key_length == 0)
+  unlikely (key_length == 0)
     return MEMCACHED_NO_KEY_PROVIDED;
 
-  if (ptr->hosts == NULL || ptr->number_of_hosts == 0)
+  unlikely (ptr->hosts == NULL || ptr->number_of_hosts == 0)
     return MEMCACHED_NO_SERVERS;
 
   if ((ptr->flags & MEM_VERIFY_KEY) && (memcachd_key_test(&key, &key_length, 1) == MEMCACHED_BAD_KEY_PROVIDED))
@@ -26,7 +26,7 @@ static memcached_return memcached_auto(memcached_st *ptr,
                         "%s %.*s %u\r\n", verb, 
                         (int)key_length, key,
                         offset);
-  if (send_length >= MEMCACHED_DEFAULT_COMMAND_SIZE)
+  unlikely (send_length >= MEMCACHED_DEFAULT_COMMAND_SIZE)
     return MEMCACHED_WRITE_FAILURE;
 
   rc= memcached_do(&ptr->hosts[server_key], buffer, send_length, 1);
index 50c6fa62acacd3e40823909343586735cce5d093..9d935e024cb0fbe22ae36b93b5c99be771bbc932 100644 (file)
@@ -101,7 +101,7 @@ static memcached_return set_socket_options(memcached_server_st *ptr)
     int flags;
 
     flags= fcntl(ptr->fd, F_GETFL, 0);
-    if (flags != -1)
+    unlikely (flags != -1)
     {
       (void)fcntl(ptr->fd, F_SETFL, flags | O_NONBLOCK);
     }
index b3ae560d14253bceaac1b7719ed821b40aca0e74..60e3bed4406e3ce89c1b6c64868559af8f77b7b8 100644 (file)
@@ -20,10 +20,10 @@ memcached_return memcached_delete_by_key(memcached_st *ptr,
 
   LIBMEMCACHED_MEMCACHED_DELETE_START();
 
-  if (key_length == 0)
+  unlikely (key_length == 0)
     return MEMCACHED_NO_KEY_PROVIDED;
 
-  if (ptr->hosts == NULL || ptr->number_of_hosts == 0)
+  unlikely (ptr->hosts == NULL || ptr->number_of_hosts == 0)
     return MEMCACHED_NO_SERVERS;
 
   server_key= memcached_generate_hash(ptr, master_key, master_key_length);
index fa3dd8d8973eb9de56b925eea2177a973586aa7c..1511adbe43ce0913f09cd1c9ee335e280e4b4db9 100644 (file)
@@ -8,7 +8,7 @@ memcached_return memcached_flush(memcached_st *ptr, time_t expiration)
   char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
   LIBMEMCACHED_MEMCACHED_FLUSH_START();
 
-  if (ptr->number_of_hosts == 0)
+  unlikely (ptr->number_of_hosts == 0)
     return MEMCACHED_NO_SERVERS;
 
   for (x= 0; x < ptr->number_of_hosts; x++)
index 6d115913ebd0d213784c9cf108c23b3e6f6aace3..fb3e6b2bc8027a64658c337e50ec807fe7c36af3 100644 (file)
@@ -60,10 +60,10 @@ static inline memcached_return memcached_send(memcached_st *ptr,
   WATCHPOINT_ASSERT(!(value == NULL && value_length > 0));
   WATCHPOINT_ASSERT(!(value && value_length == 0));
 
-  if (key_length == 0)
+  unlikely (key_length == 0)
     return MEMCACHED_NO_KEY_PROVIDED;
 
-  if (ptr->number_of_hosts == 0)
+  unlikely (ptr->number_of_hosts == 0)
     return MEMCACHED_NO_SERVERS;
 
   if ((ptr->flags & MEM_VERIFY_KEY) && (memcachd_key_test(&key, &key_length, 1) == MEMCACHED_BAD_KEY_PROVIDED))
index f599787bd070697c011bf566224b210348b33e34..7cfb073fdcd69799a703f88f61ee6519fc137aba 100644 (file)
@@ -9,7 +9,7 @@ memcached_return memcached_verbosity(memcached_st *ptr, unsigned int verbosity)
 
   send_length= snprintf(buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, 
                         "verbosity %u\r\n", verbosity);
-  if (send_length >= MEMCACHED_DEFAULT_COMMAND_SIZE)
+  unlikely (send_length >= MEMCACHED_DEFAULT_COMMAND_SIZE)
     return MEMCACHED_WRITE_FAILURE;
 
   rc= MEMCACHED_SUCCESS;