function poll(fds: GLib.PollFD, nfds: Number(guint), timeout: Number(gint)): Number(gint) {
    // Gjs wrapper for g_poll()

Polls fds, as with the poll() system call, but portably. (On systems that don't have poll(), it is emulated using select().) This is used internally by GLib.MainContext, but it can be called directly if you need to block until a file descriptor is ready, but don't want to run the full main loop.

Each element of fds is a GLib.PollFD describing a single file descriptor to poll. The %fd field indicates the file descriptor, and the %events field indicates the events to poll for. On return, the %revents fields will be filled with the events that actually occurred.

On POSIX systems, the file descriptors in fds can be any sort of file descriptor, but the situation is much more complicated on Windows. If you need to use GLib.poll in code that has to run on Windows, the easiest solution is to construct all of your #GPollFDs with g_io_channel_win32_make_pollfd().

Since 2.20


file descriptors to poll


the number of file descriptors in fds


amount of time to wait, in milliseconds, or -1 to wait forever


the number of entries in fds whose %revents fields were filled in, or 0 if the operation timed out, or -1 on error or if the call was interrupted.