| 170 | } |
| 171 | |
| 172 | bool |
| 173 | IPCSocketServer::poll_for_new_client(std::chrono::milliseconds timeout) const |
| 174 | { |
| 175 | auto check_poll_return = [&](int pfd) -> bool { |
| 176 | if (!_running.load()) { |
| 177 | return false; |
| 178 | } |
| 179 | if (pfd < 0) { |
| 180 | switch (errno) { |
| 181 | case EINTR: |
| 182 | case EAGAIN: |
| 183 | return true; |
| 184 | default: |
| 185 | return false; |
| 186 | } |
| 187 | } else if (pfd > 0) { |
| 188 | // ready. |
| 189 | return false; |
| 190 | } else { |
| 191 | // time out, try again |
| 192 | return true; |
| 193 | } |
| 194 | }; |
| 195 | |
| 196 | return poll_on_socket(check_poll_return, timeout, this->_socket); |
| 197 | } |
| 198 | |
| 199 | void |
| 200 | IPCSocketServer::run() |
no test coverage detected