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.