*/
memcached_callback_st cb= *ptr->root->callbacks;
+ ptr->root->options.is_processing_input= true;
+
char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
memcached_return_t error;
error= memcached_response(ptr, buffer, sizeof(buffer),
&ptr->root->result);
+
+ ptr->root->options.is_processing_input = false;
+
if (error == MEMCACHED_SUCCESS)
{
for (unsigned int x= 0; x < cb.number_of_callback; x++)
struct pollfd fds[MAX_SERVERS_TO_POLL];
unsigned int host_index= 0;
- for (unsigned int x= 0;
+ for (uint32_t x= 0;
x< memcached_server_count(memc) && host_index < MAX_SERVERS_TO_POLL;
++x)
{
- if (memc->hosts[x].read_buffer_length > 0) /* I have data in the buffer */
- return &memc->hosts[x];
+ memcached_server_instance_st *instance=
+ memcached_server_instance_fetch(memc, x);
- if (memcached_server_response_count(&memc->hosts[x]) > 0)
+ if (instance->read_buffer_length > 0) /* I have data in the buffer */
+ return instance;
+
+ if (memcached_server_response_count(instance) > 0)
{
fds[host_index].events = POLLIN;
fds[host_index].revents = 0;
- fds[host_index].fd = memc->hosts[x].fd;
+ fds[host_index].fd = instance->fd;
++host_index;
}
}
if (host_index < 2)
{
/* We have 0 or 1 server with pending events.. */
- for (unsigned int x= 0; x< memcached_server_count(memc); ++x)
- if (memcached_server_response_count(&memc->hosts[x]) > 0)
- return &memc->hosts[x];
+ for (uint32_t x= 0; x< memcached_server_count(memc); ++x)
+ {
+ memcached_server_instance_st *instance=
+ memcached_server_instance_fetch(memc, x);
+
+ if (memcached_server_response_count(instance) > 0)
+ {
+ return instance;
+ }
+ }
return NULL;
}
{
if (fds[x].revents & POLLIN)
{
- for (unsigned int y= 0; y < memcached_server_count(memc); ++y)
+ for (uint32_t y= 0; y < memcached_server_count(memc); ++y)
{
- if (memc->hosts[y].fd == fds[x].fd)
- return &memc->hosts[y];
+ memcached_server_instance_st *instance=
+ memcached_server_instance_fetch(memc, y);
+
+ if (instance->fd == fds[x].fd)
+ return instance;
}
}
}