tsx-tools provides headers and utilities for development with TSX (HLE/RTM) hardware transactional memory development on recent Intel CPUs. It includes compat headers that provide C inline functions support for RTM and HLE in various formats for older gcc compatible compilers (before gcc 4.8). These headers are useful to enable lock elision in a lock library or existing program. It also has various TSX related utilities, including a tool that detects the presence of TSX, a TSX aware assert, and various debugging utilities.
cqueues is a comprehensive event and networking library for Lua 5.2 and LuaJIT using modern Unix O(1) polling facilities. It includes libraries for buffered socket I/O, SSL/TLS sockets, DNS querying, signal handling, threading, file change notification, and X.509 key management. It natively supports Linux, *BSD, OS X, and Solaris systems without third-party dependencies, and is interoperable with any event loop that accepts plain descriptors, or is usable standalone.
Multi Threaded Daemon - enhanced is a class that implements a daemon that can spawn multiple parallel threads. It includes a sample app to monitor a "queue" directory on the filesystem, and spawns up to "N" child processes to parse individual files from it. It is an enhanced version of the original Multithreaded Daemon class written by Benoit Perroud. This version provides several robustness improvements, adds support for handling signals (SIGTERM, SIGHUP), and a unique PID file to avoid starting multiple instances.
libpersist is a small library of C++ base classes and templates providing the capability to store and load objects in their entirety across executions. It also provides for object relocation between threads in a NUMA (non-uniform memory access) parallel processing environment. Objects are stored to disk as POD. They are reconstructed when reloaded into memory. Relocation is a special case of persistence, requiring reconstruction after the POD has been moved in memory. After all objects have been relocated, all references to the objects are swizzled (their IDs are resolved to their addresses), so that they can be dereferenced efficiently.