From 827d346899cf0d0d95f8320660944c8f38488b57 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 28 Aug 2008 20:20:10 +0200 Subject: client: no while loop in client_manager_io() The last patch removed the "continue" directive, and now the while loop is without function. Remove it. Also make client_manager_io() return 0. --- src/client.c | 54 ++++++++++++++++++++++++------------------------------ 1 file changed, 24 insertions(+), 30 deletions(-) (limited to 'src') diff --git a/src/client.c b/src/client.c index 6ee9b988d..f03dd407b 100644 --- a/src/client.c +++ b/src/client.c @@ -476,47 +476,41 @@ int client_manager_io(void) fd_set efds; struct client *client, *n; int selret; - int fdmax; + int fdmax = 0; - while (1) { - fdmax = 0; + FD_ZERO( &efds ); + client_manager_register_read_fd(&rfds, &fdmax); + client_manager_register_write_fd(&wfds, &fdmax); - FD_ZERO( &efds ); - client_manager_register_read_fd(&rfds, &fdmax); - client_manager_register_write_fd(&wfds, &fdmax); + registered_IO_add_fds(&fdmax, &rfds, &wfds, &efds); - registered_IO_add_fds(&fdmax, &rfds, &wfds, &efds); + selret = select(fdmax + 1, &rfds, &wfds, &efds, NULL); + if (selret < 0) { + if (errno == EINTR) + return 0; - selret = select(fdmax + 1, &rfds, &wfds, &efds, NULL); - if (selret < 0) { - if (errno == EINTR) - break; - - FATAL("select() failed: %s\n", strerror(errno)); - } + FATAL("select() failed: %s\n", strerror(errno)); + } - registered_IO_consume_fds(&selret, &rfds, &wfds, &efds); + registered_IO_consume_fds(&selret, &rfds, &wfds, &efds); - getConnections(&rfds); + getConnections(&rfds); - list_for_each_entry_safe(client, n, &clients, siblings) { - if (FD_ISSET(client->fd, &rfds)) { - if (COMMAND_RETURN_KILL == - client_read(client)) { - return COMMAND_RETURN_KILL; - } - client->lastTime = time(NULL); - } - if (FD_ISSET(client->fd, &wfds)) { - client_write_deferred(client); - client->lastTime = time(NULL); + list_for_each_entry_safe(client, n, &clients, siblings) { + if (FD_ISSET(client->fd, &rfds)) { + if (COMMAND_RETURN_KILL == + client_read(client)) { + return COMMAND_RETURN_KILL; } + client->lastTime = time(NULL); + } + if (FD_ISSET(client->fd, &wfds)) { + client_write_deferred(client); + client->lastTime = time(NULL); } - - break; } - return 1; + return 0; } void client_manager_init(void) -- cgit v1.2.3