Skip to content

UnixIoThread#

Poll-based event loop to handle events of file descriptors.

Header:#include <AUI/Platform/unix/UnixIoThread.h>
CMake:aui_link(my_target PUBLIC aui::core)

Public Methods#

waitForEvent#


AFuture<ABitField<UnixPollEvent>> UnixIoThread::waitForEvent(int fd, ABitField<UnixPollEvent> flags)

A simplified version of registerCallback/unregisterCallback for waiting events on file descriptor.

Arguments
fd
file descriptor to watch on.
flags
which events to listen
Returns
AFuture with bitfield on which events was triggerred
AAsyncHolder async;
async << []() -> AFuture<> {
   int signalFd = signalfd(-1, &procMask, SFD_CLOEXEC);
   for (;;) {
       co_await UnixIoThread::inst().waitForEvent(signalFd, UnixPollEvent::IN);
       read(signalFd, ...);
   }
   close(signalFd);
};