X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached_io.c;h=93ca41732d4ca26741c2c905e10e9ea001795e15;hb=f562c49d93b63a33b4c914a1c5b0ec43576aaafc;hp=38544102bcc54765101b25e2beb68e4390db639d;hpb=571fad579922f2b10873193500dfd0652f4fdc37;p=m6w6%2Flibmemcached diff --git a/libmemcached/memcached_io.c b/libmemcached/memcached_io.c index 38544102..93ca4173 100644 --- a/libmemcached/memcached_io.c +++ b/libmemcached/memcached_io.c @@ -204,9 +204,14 @@ ssize_t memcached_io_write(memcached_server_st *ptr, return original_length; } -memcached_return memcached_io_close(memcached_server_st *ptr) +memcached_return memcached_io_close(memcached_server_st *ptr, uint8_t io_death) { - close(ptr->fd); + /* in case of death shutdown to avoid blocking at close() */ + + if (io_death) + shutdown(ptr->fd, SHUT_RDWR); + else + close(ptr->fd); return MEMCACHED_SUCCESS; }