X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached_get.c;h=05b317a6268b79d19b5a711d49dfb05cf4dc3cb1;hb=7582050eb5e2bdc7e055c84d639a7cb5b407cd4c;hp=4d5fe7ca2d78a05330ac8c4993ba6ee9d400f32f;hpb=b10a03e4afb5514f1c86f5c75b9bfc7d46ce49b4;p=awesomized%2Flibmemcached diff --git a/libmemcached/memcached_get.c b/libmemcached/memcached_get.c index 4d5fe7ca..05b317a6 100644 --- a/libmemcached/memcached_get.c +++ b/libmemcached/memcached_get.c @@ -27,7 +27,7 @@ char *memcached_get_by_key(memcached_st *ptr, uint32_t dummy_flags; memcached_return dummy_error; - if (ptr->flags & MEM_USE_UDP) + unlikely (ptr->flags & MEM_USE_UDP) { *error= MEMCACHED_NOT_SUPPORTED; return NULL; @@ -125,10 +125,10 @@ memcached_return memcached_mget_by_key(memcached_st *ptr, memcached_return rc= MEMCACHED_NOTFOUND; char *get_command= "get "; uint8_t get_command_length= 4; - unsigned int master_server_key; /* 0 is a valid server id! */ + unsigned int master_server_key= (unsigned int)-1; /* 0 is a valid server id! */ bool is_master_key_set= false; - if (ptr->flags & MEM_USE_UDP) + unlikely (ptr->flags & MEM_USE_UDP) return MEMCACHED_NOT_SUPPORTED; LIBMEMCACHED_MEMCACHED_MGET_START(); @@ -311,14 +311,16 @@ static memcached_return binary_mget_by_key(memcached_st *ptr, if ((memcached_io_write(&ptr->hosts[server_key], request.bytes, sizeof(request.bytes), 0) == -1) || (memcached_io_write(&ptr->hosts[server_key], keys[x], - key_length[x], - flush || (x > 0 && x == ptr->io_key_prefetch)) == -1)) + key_length[x], flush) == -1)) { memcached_server_response_reset(&ptr->hosts[server_key]); rc= MEMCACHED_SOME_ERRORS; continue; } memcached_server_response_increment(&ptr->hosts[server_key]); + if ((x > 0 && x == ptr->io_key_prefetch) && + memcached_flush_buffers(ptr) != MEMCACHED_SUCCESS) + rc= MEMCACHED_SOME_ERRORS; } if (number_of_keys > 1)