Furthermore, on some systems, even read access to freed memory may result in fatal access errors. [0007] For most dynamic lock-free algorithms, in order to guarantee lock-free progress, all participating threads must have unrestricted opportunity to operate on the object, including access to all or some of its nodes, concurrently.