10#include "dawn/common/thread.hxx"
21static constexpr int DAWN_POLL_TIMEOUT_MS = 1000;
33 int (*
beforePoll)(
void *priv,
struct pollfd *pfds, nfds_t nfds);
39 void (*
afterPoll)(
void *priv,
struct pollfd *pfds, nfds_t nfds,
int ret);
45 int (*
onPollReady)(
void *priv,
struct pollfd *pfds, nfds_t nfds,
int pollRet);
81 ret = poll(pfds, nfds, timeoutMs);
85 callbacks.
afterPoll(priv, pfds, nfds, ret);
93 while (!threadCtl.shouldQuit());
95 threadCtl.markThreadFinished();
Shared runner for poll-based worker threads.
static int run(CThreadedObject &threadCtl, struct pollfd *pfds, nfds_t nfds, int timeoutMs, const SPollLoopCallbacks &callbacks, void *priv)
Run poll loop until quit is requested.
Portable thread owner abstraction for Dawn components.
Out-of-tree user-extension hooks for Dawn.
Callback set for poll-based worker loops.
void(* afterPoll)(void *priv, struct pollfd *pfds, nfds_t nfds, int ret)
Optional hook called after each poll() return.
int(* onPollReady)(void *priv, struct pollfd *pfds, nfds_t nfds, int pollRet)
Optional hook called when poll() reports ready descriptors.
int(* beforePoll)(void *priv, struct pollfd *pfds, nfds_t nfds)
Optional hook called before each poll() call.