1 /* vi: set sw=4 ts=4: */
5 * Copyright (C) 2007 by Denys Vlasenko <vda.linux@googlemail.com>
7 * Licensed under GPLv2, see file LICENSE in this tarball for details.
12 /* Wrapper which restarts poll on EINTR or ENOMEM.
13 * On other errors does perror("poll") and returns.
14 * Warning! May take longer than timeout_ms to return! */
15 int FAST_FUNC safe_poll(struct pollfd *ufds, nfds_t nfds, int timeout)
18 int n = poll(ufds, nfds, timeout);
21 /* Make sure we inch towards completion */
24 /* E.g. strace causes poll to return this */
27 /* Kernel is very low on memory. Retry. */
28 /* I doubt many callers would handle this correctly! */
31 bb_perror_msg("poll");