Dasynq is an event loop library similar to libevent, libev and libuv.
Key features/attributes are: written in portable C++ code (C++11); Thread safe — full support for use in a multi-threaded application; Header-only library — does not install a shared library; Supports file I/O, signals, process termination and timer events; Linux, OpenBSD, FreeBSD, MacOS — and portable to others.
Like other such libraries, it is crossplatform / portable. Unlike most other such libraries, it is intended to be completely usable in a multi-threaded client program, and it is written in C++; furthermore the API is designed to allow the creation of extremely robust clients.
Dasynq works on Linux, OpenBSD, FreeBSD and MacOS, and it should be easily portable to other POSIX-like operating systems.
Homepage
Download
Recent Releases
1.1.723 Dec 2019 12:05
minor feature:
Add another function test for timers.
.
Clean up pointless condition.
.
Minor cleanups.
.
Avoid "no return" warning in timer_for_clock.
.
Use perfect-forwarding appropriately in heap implementations.
.
Extend caveat in introduction.
.
Improve comments and use move as appropriate in dary_heap.
.
: release watchers that return rearm::REMOVE.
.
tests: deregister all watchers by end of a test.
.
Rename some classes in extras as per convention.
.
svec: remove explicit destructor from vec_node.
.
Add some comments.
.
poll blocking if another thread was in run().
.
Cleanups and comments.
.
Add missing stub in waitqueue specialisation for null_mutex.
.
Add a (very simple) chat server example.
.
Add compilation instructions to chatserver example.
.
Separate processing of bidi watcher primary.
.
Add a multi-threaded variant of the chat server example.
.
Minor documentation improvements for bidi_fd_watcher.
.
Bump version to 1.1.7.
1.1.624 May 2019 03:15
minor feature:
Docs: add caveat about stupid Itanium C++ ABI.
.
Docs: typo ("serial lies").
.
Remove unnecessary "return" statement.
.
Add missing include (though it was included transitively).
.
timer affecting interval timer.
.
Up version number to 1.1.6.
.
Minor documentation updates and style improvements.
.
Add NEWS file.
1.1.515 Sep 2018 07:05
minor feature:
Avoid undefined char arithmetic.
.
Kqueue: clean up namespace pollution.
.
Btree set: style and remove potential undefined behaviour.
.
Slightly improve base_watcher implementation.
.
Dary-heap: delete "operator=" in handle_t.
.
Bump version to 1.1.5.
1.1.403 Apr 2018 03:15
minor feature:
Document the pre-existing "add_timer() with lambda" function.
Change "add_timer()" (with lambda) to accept const timespec arguments (previously the parameter types were non-const).
Broken timer example in introduction (USAGE.md).
Various internal changes.
1.1.309 Mar 2018 03:15
minor feature:
Timers not working on non-Linux systems.
Includes CMake files (makes it easier for projects using CMake to use Dasynq).
Build for platforms without kqueue or epoll.
Install for BSDs.
1.1.227 Feb 2018 16:08
minor bugfix:
Build fixes for BSDs.