* @param instance the server to star processing iput messages for
* @return true if we processed anything, false otherwise
*/
* @param instance the server to star processing iput messages for
* @return true if we processed anything, false otherwise
*/
memcached_return_t error= memcached_response(instance, buffer, sizeof(buffer), &root->result);
memcached_set_processing_input(root, false);
memcached_return_t error= memcached_response(instance, buffer, sizeof(buffer), &root->result);
memcached_set_processing_input(root, false);
- instance->io_wait_count.timeouts++;
- return memcached_set_error(*instance, MEMCACHED_TIMEOUT, MEMCACHED_AT);
+ return memcached_set_error(*instance, MEMCACHED_TIMEOUT, MEMCACHED_AT, memcached_literal_param("poll_timeout() was set to zero"));
- instance->io_wait_count.timeouts++;
- return memcached_set_error(*instance, MEMCACHED_TIMEOUT, MEMCACHED_AT);
+ return memcached_set_error(*instance, MEMCACHED_TIMEOUT, MEMCACHED_AT, memcached_literal_param("No active_fd were found"));
case EINVAL:
memcached_set_error(*instance, MEMCACHED_MEMORY_ALLOCATION_FAILURE, MEMCACHED_AT, memcached_literal_param("RLIMIT_NOFILE exceeded, or if OSX the timeout value was invalid"));
case EINVAL:
memcached_set_error(*instance, MEMCACHED_MEMORY_ALLOCATION_FAILURE, MEMCACHED_AT, memcached_literal_param("RLIMIT_NOFILE exceeded, or if OSX the timeout value was invalid"));
default:
memcached_set_errno(*instance, local_errno, MEMCACHED_AT, memcached_literal_param("poll"));
default:
memcached_set_errno(*instance, local_errno, MEMCACHED_AT, memcached_literal_param("poll"));
}
ssize_t sent_length= ::send(instance->fd, local_write_ptr, write_length, flags);
}
ssize_t sent_length= ::send(instance->fd, local_write_ptr, write_length, flags);
-memcached_return_t memcached_io_wait_for_write(org::libmemcached::Instance* instance)
+memcached_return_t memcached_io_wait_for_write(memcached_instance_st* instance)
+{
+ return io_wait(instance, POLLOUT);
+}
+
+memcached_return_t memcached_io_wait_for_read(memcached_instance_st* instance)
{
ssize_t data_read;
do
{
data_read= ::recv(instance->fd, instance->read_buffer, MEMCACHED_MAX_BUFFER, MSG_NOSIGNAL);
{
ssize_t data_read;
do
{
data_read= ::recv(instance->fd, instance->read_buffer, MEMCACHED_MAX_BUFFER, MSG_NOSIGNAL);
void *buffer, size_t length, ssize_t& nread)
{
assert(memcached_is_udp(instance->root) == false);
void *buffer, size_t length, ssize_t& nread)
{
assert(memcached_is_udp(instance->root) == false);
{
assert_msg(instance, "Programmer error, invalid Instance");
assert(memcached_is_udp(instance->root) == false);
{
assert_msg(instance, "Programmer error, invalid Instance");
assert(memcached_is_udp(instance->root) == false);
const void *buffer, size_t length, bool with_flush,
size_t& written)
{
const void *buffer, size_t length, bool with_flush,
size_t& written)
{
{
size_t written;
return _io_write(instance, NULL, 0, true, written);
}
{
size_t written;
return _io_write(instance, NULL, 0, true, written);
}
libmemcached_io_vector_st vector[],
const size_t number_of, const bool with_flush)
{
libmemcached_io_vector_st vector[],
const size_t number_of, const bool with_flush)
{
/* We have 0 or 1 server with pending events.. */
for (uint32_t x= 0; x< memcached_server_count(memc); ++x)
{
/* We have 0 or 1 server with pending events.. */
for (uint32_t x= 0; x< memcached_server_count(memc); ++x)
{
* Read a given number of bytes from the server and place it into a specific
* buffer. Reset the IO channel on this server if an error occurs.
*/
* Read a given number of bytes from the server and place it into a specific
* buffer. Reset the IO channel on this server if an error occurs.
*/