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.
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.