In multi-threaded programming, it is common to use locking and blocking to provide coordinated use of shared resources. However, locking is very slow, and can lead to deadlocks if not used carefully. I have an interest in locl-free programming starting with a smart-pointer class that never blocks.
Just getting started... a rough outline: The smart pointers general techniques atomic counter speculative execution, detachment can use critical section primitive with "try enter" generally, instead of waiting do something else useful or have contingency plans doesn't have to be lock *free*, but can be useful to just minimize locking. vararray, how it just uses the pointers memory allocation - desire and notes associative array