projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
See changes in changelog, but...
[m6w6/libmemcached]
/
lib
/
memcached_quit.c
diff --git
a/lib/memcached_quit.c
b/lib/memcached_quit.c
index 24a88c2d9c0d2d2ce56ef4ac6c0a59c2b3b65084..64bfe27e25f60cb810acec811255876b4fb91301 100644
(file)
--- a/
lib/memcached_quit.c
+++ b/
lib/memcached_quit.c
@@
-1,9
+1,12
@@
-#include
<memcached.h>
+#include
"common.h"
/*
This closes all connections (forces flush of input as well).
Maybe add a host specific, or key specific version?
/*
This closes all connections (forces flush of input as well).
Maybe add a host specific, or key specific version?
+
+ The reason we send "quit" is that in case we have buffered IO, this
+ will force data to be completed.
*/
void memcached_quit(memcached_st *ptr)
{
*/
void memcached_quit(memcached_st *ptr)
{
@@
-13,9
+16,17
@@
void memcached_quit(memcached_st *ptr)
{
for (x= 0; x < ptr->number_of_hosts; x++)
{
{
for (x= 0; x < ptr->number_of_hosts; x++)
{
- if (ptr->hosts[x].fd > 0)
+ if (ptr->hosts[x].fd != -1)
+ {
+ char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
+
+ if (ptr->flags & MEM_NO_BLOCK)
+ memcached_io_write(ptr, x, "quit\r\n", 6, 1);
close(ptr->hosts[x].fd);
close(ptr->hosts[x].fd);
+ ptr->hosts[x].fd= -1;
+ }
}
}
}
}
+
ptr->connected= 0;
}
ptr->connected= 0;
}