| 177 | Return true, if EAGAIN has been successfully handled. */ |
| 178 | |
| 179 | static bool |
| 180 | wait_for_nonblocking_write (int fd) |
| 181 | { |
| 182 | if (! IS_EAGAIN (errno)) |
| 183 | /* non-recoverable write error */ |
| 184 | return false; |
| 185 | |
| 186 | /* wait for the file descriptor to become writable */ |
| 187 | if (iopoll_internal (-1, fd, true, false) != 0) |
| 188 | { |
| 189 | errno = EAGAIN; |
| 190 | return false; |
| 191 | } |
| 192 | |
| 193 | /* successfully waited for the descriptor to become writable */ |
| 194 | return true; |
| 195 | } |
| 196 | |
| 197 | /* wrapper for close() that also waits for FD if non blocking. */ |
| 198 |
no test coverage detected