Zth (libzth)
poller

Fiber-aware poller. More...

Classes

struct  zth::Pollable
 A pollable thing. More...
 
struct  zth::PollableFd
 A pollable file descriptor. More...
 
class  zth::PollerInterface
 Abstract base class of a poller. More...
 
class  zth::PollerClientBase
 The abstract base class of a Poller client. More...
 
class  zth::PollerServerBase
 Abstract base class of a Poller server. More...
 
class  zth::PollerServer< PollItem_ >
 Poller to be executed by the Waiter. More...
 
class  zth::ZmqPoller
 A PollerServer that uses zmq_poll(). More...
 
class  zth::PollerClient
 The poller to be used by a fiber. More...
 

Typedefs

typedef PollerClient zth::Poller
 The default Poller to use. More...
 
typedef ZmqPoller zth::DefaultPollerServer
 The poller server, by default instantiated by the zth::Waiter. More...
 

Functions

template<typename P >
int zth::poll (P pollable, int timeout_ms=-1)
 Fiber-aware poll() for a single pollable thing. More...
 

Detailed Description

Fiber-aware poller.

In order to wait for multiple file descriptors, one could use poll(). However, when poll() suspends, it suspends not only the current fiber, but the whole application.

Zth's poller implementation is a fiber-aware, extendable poller implementation, that uses either zmq_poll() or the OS's poll(). However, it has the following limitation: in Windows, only WSA2 or ZeroMQ sockets can be polled; the provided file descriptor must be one of those. Other fds, like a normal file or stdin, are not supported. For POSIX-like systems, any fd can be used.

Typedef Documentation

◆ DefaultPollerServer

The poller server, by default instantiated by the zth::Waiter.

Definition at line 666 of file poller.h.

◆ Poller

The default Poller to use.

Definition at line 776 of file poller.h.

Function Documentation

◆ poll()

template<typename P >
int zth::poll ( pollable,
int  timeout_ms = -1 
)

Fiber-aware poll() for a single pollable thing.

Definition at line 783 of file poller.h.