projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Cleanup of linger call.
[m6w6/libmemcached]
/
lib
/
memcached_io.c
diff --git
a/lib/memcached_io.c
b/lib/memcached_io.c
index daf64755c69ce171234c4c026aee925009aad9eb..de3eda32875460018fa4aa320237197be0d40d53 100644
(file)
--- a/
lib/memcached_io.c
+++ b/
lib/memcached_io.c
@@
-150,36
+150,22
@@
ssize_t memcached_io_write(memcached_st *ptr, unsigned int server_key,
memcached_return memcached_io_close(memcached_st *ptr, unsigned int server_key)
{
memcached_return memcached_io_close(memcached_st *ptr, unsigned int server_key)
{
- memcached_return rc;
-
- rc= MEMCACHED_SUCCESS;
- if (ptr->flags & MEM_NO_BLOCK)
+ if (ptr->flags & MEM_NO_BLOCK && 0)
{
{
+ int sock_size;
int error;
int error;
- struct pollfd fds[1];
- short flags= 0;
-
- flags= POLLHUP | POLLERR;
-
- memset(&fds, 0, sizeof(struct pollfd));
- fds[0].fd= ptr->hosts[server_key].fd;
- fds[0].events= flags;
- fds[0].revents= 0;
+ socklen_t sock_length;
- error= poll(fds, 1, ptr->poll_timeout == -1 ? 100 : ptr->poll_timeout);
+ error= getsockopt(ptr->hosts[server_key].fd, IPPROTO_TCP, SO_LINGER,
+ &sock_size, &sock_length);
- if (error == -1)
- {
- memcached_quit_server(ptr, server_key, 1);
- return MEMCACHED_FAILURE;
- }
- else if (error == 0)
- return MEMCACHED_FAILURE; /* Timeout occurred */
+ WATCHPOINT_NUMBER(error);
+ WATCHPOINT_NUMBER(sock_size);
}
close(ptr->hosts[server_key].fd);
}
close(ptr->hosts[server_key].fd);
- return
rc
;
+ return
MEMCACHED_SUCCESS
;
}
static ssize_t io_flush(memcached_st *ptr, unsigned int server_key,
}
static ssize_t io_flush(memcached_st *ptr, unsigned int server_key,