See changes in changelog, but...
[m6w6/libmemcached] / lib / memcached_flush.c
index 209a7e0fc8b3481d0d3d09b2d5a2987632ddca5f..9b9c4baca91c3efb181961abef7ecf69a2aa6d62 100644 (file)
@@ -1,4 +1,4 @@
-#include <memcached.h>
+#include "common.h"
 
 memcached_return memcached_flush(memcached_st *ptr, time_t expiration)
 {
@@ -6,6 +6,7 @@ memcached_return memcached_flush(memcached_st *ptr, time_t expiration)
   size_t send_length, sent_length;
   memcached_return rc;
   char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
+  LIBMEMCACHED_MEMCACHED_FLUSH_START();
 
   rc= memcached_connect(ptr);
 
@@ -25,16 +26,19 @@ memcached_return memcached_flush(memcached_st *ptr, time_t expiration)
     if (send_length >= MEMCACHED_DEFAULT_COMMAND_SIZE)
       return MEMCACHED_WRITE_FAILURE;
 
-    sent_length= send(ptr->hosts[x].fd, buffer, send_length, 0);
+    sent_length= memcached_io_write(ptr, x, buffer, send_length, 1);
 
     if (sent_length == -1 || sent_length != send_length)
       return MEMCACHED_WRITE_FAILURE;
 
+    if (ptr->flags & MEM_NO_BLOCK)
+      WATCHPOINT;
     rc= memcached_response(ptr, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, x);
 
     if (rc != MEMCACHED_SUCCESS)
       rc= MEMCACHED_SOME_ERRORS;
   }
 
+  LIBMEMCACHED_MEMCACHED_FLUSH_END();
   return rc;
 }