85 if(m_dev_fds.size() > 0)
90 for(
int dev_fd : m_dev_fds)
92 FD_SET(dev_fd, &read_set);
97 struct ::timeval timeout;
98 timeout.tv_sec = (BOTAN_SYSTEM_RNG_POLL_TIMEOUT_MS / 1000);
99 timeout.tv_usec = (BOTAN_SYSTEM_RNG_POLL_TIMEOUT_MS % 1000) * 1000;
101 if(::select(m_max_fd + 1, &read_set,
nullptr,
nullptr, &timeout) > 0)
103 for(
int dev_fd : m_dev_fds)
105 if(FD_ISSET(dev_fd, &read_set))
107 const ssize_t got = ::read(dev_fd, io_buf.data(), io_buf.size());
111 rng.
add_entropy(io_buf.data(),
static_cast<size_t>(got));