Dasynq manual
This is the manual for the Dasynq event loop library.- Introduction
- Reference
Introduction
An event loop library provides a means for waiting on events that occur asynchronously. One good example is network input/output; in a server with multiple client connections, a mechanism is needed to wait until data is available, or until it is possible to write data, to one or more of the current connections (and to be able to identify which connections are ready). Dasynq is a multi-platform, thread-safe C++ library which provides such functionality.
Note that an event loop generally supports managing various different kinds of event. Dasynq can be used for detecting:
- read/write readiness on sockets, pipes, and certain devices including terminals and serial lies;
- connections to listening sockets;
- reception of POSIX signals (such as SIGTERM); and
- child process status notifications (termination etc).
Dasynq is fully thread safe, allowing events to be polled and processed on any thread. There are some limitations on the use the Dasynq API in a multi-threaded application. However, when used in a single-thread application, the API is just about as straight-forward as the API of most other event loop libraries.
Dasynq is also intended to allow development of extremely robust client applications. Where possible, it allows pre-allocation of resources to prevent allocation failures from occurring at inopportune moments during program execution.