diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2016-08-30 22:56:47 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2016-08-30 22:56:47 +0100 |
| commit | 8b02bb749dece7690f4919372d19cd40907b91b1 (patch) | |
| tree | 98e636beca5e83f909d3872586f383e95095851b /src/remote.cc | |
| parent | d0a29511d28f1481622ac9bb3a6ebfa9f8988c2b (diff) | |
Add a fd_readable(int fd) helper function
Use it instead of direct calls to select scatered around the code
base.
Diffstat (limited to 'src/remote.cc')
| -rw-r--r-- | src/remote.cc | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/src/remote.cc b/src/remote.cc index ca079427..b4886dd7 100644 --- a/src/remote.cc +++ b/src/remote.cc @@ -372,17 +372,7 @@ void RemoteUI::set_ui_options(const Options& options) bool RemoteUI::is_key_available() { - timeval tv; - fd_set rfds; - - int sock = m_socket_watcher.fd(); - FD_ZERO(&rfds); - FD_SET(sock, &rfds); - - tv.tv_sec = 0; - tv.tv_usec = 0; - int res = select(sock+1, &rfds, nullptr, nullptr, &tv); - return res == 1; + return fd_readable(m_socket_watcher.fd()); } Key RemoteUI::get_key() @@ -466,15 +456,9 @@ RemoteClient::RemoteClient(StringView session, std::unique_ptr<UserInterface>&& void RemoteClient::process_available_messages() { int socket = m_socket_watcher->fd(); - timeval tv{ 0, 0 }; - fd_set rfds; - do { process_next_message(); - - FD_ZERO(&rfds); - FD_SET(socket, &rfds); - } while (select(socket+1, &rfds, nullptr, nullptr, &tv) == 1); + } while (fd_readable(socket)); } void RemoteClient::process_next_message() @@ -573,9 +557,7 @@ public: private: void handle_available_input() { - int socket = m_socket_watcher.fd(); - timeval tv{ 0, 0 }; - fd_set rfds; + const int socket = m_socket_watcher.fd(); do { char c; @@ -610,11 +592,8 @@ private: } else m_buffer += c; - - FD_ZERO(&rfds); - FD_SET(socket, &rfds); } - while (select(socket+1, &rfds, nullptr, nullptr, &tv) == 1); + while (fd_readable(socket)); } String m_buffer; |
