Simple, fast, and practical non-blocking and blocking concurrent queue algorithms
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
Proceedings of the twelfth annual ACM symposium on Parallel algorithms and architectures
A Pragmatic Implementation of Non-blocking Linked-Lists
DISC '01 Proceedings of the 15th International Conference on Distributed Computing
Even Better DCAS-Based Concurrent Deques
DISC '00 Proceedings of the 14th International Conference on Distributed Computing
Language support for lightweight transactions
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Scalable and lock-free concurrent dictionaries
Proceedings of the 2004 ACM symposium on Applied computing
Lock-free linked lists and skip lists
Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing
Wait-Free Reference Counting and Memory Management
IPDPS '05 Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium (IPDPS'05) - Papers - Volume 01
Fast and lock-free concurrent priority queues for multi-thread systems
Journal of Parallel and Distributed Computing
Concurrent programming without locks
ACM Transactions on Computer Systems (TOCS)
CheckFence: checking consistency of concurrent data types on relaxed memory models
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Performance of memory reclamation for lockless synchronization
Journal of Parallel and Distributed Computing
Lock-free deques and doubly linked lists
Journal of Parallel and Distributed Computing
Practical, Fast and Simple Concurrent FIFO Queues Using Single Word Synchronization Primitives
Ada-Europe '08 Proceedings of the 13th Ada-Europe international conference on Reliable Software Technologies
State-space exploration for concurrent algorithms under weak memory orderings: (preliminary version)
ACM SIGARCH Computer Architecture News
LFTHREADS: a lock-free thread library
ACM SIGARCH Computer Architecture News
LFTHREADS: a lock-free thread library
OPODIS'07 Proceedings of the 11th international conference on Principles of distributed systems
Line-up: a complete and automatic linearizability checker
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Making lockless synchronization fast: performance implications of memory reclamation
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
Automatic inference of memory fences
Proceedings of the 2010 Conference on Formal Methods in Computer-Aided Design
Lock-free dynamically resizable arrays
OPODIS'06 Proceedings of the 10th international conference on Principles of Distributed Systems
Model checking of linearizability of concurrent list implementations
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Lock-free and practical doubly linked list-based deques using single-word compare-and-swap
OPODIS'04 Proceedings of the 8th international conference on Principles of Distributed Systems
Dynamic synthesis for relaxed memory models
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Automatic inference of memory fences
ACM SIGACT News
Parameterized model checking of fine grained concurrency
SPIN'12 Proceedings of the 19th international conference on Model Checking Software
An integrated specification and verification technique for highly concurrent data structures
TACAS'13 Proceedings of the 19th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Structured deferral: synchronization via procrastination
Communications of the ACM
Structured Deferral: Synchronization via Procrastination
Queue - Concurrency
Hi-index | 0.02 |
Memory reuse in link-based lock-free data structures requires special care. Many lock-free algorithms require deleted nodes not to be reused until no active pointers point to them. Also, most lock-free algorithms use the compare_and_swap atomic primitive, which can suffer from the ``ABA problem'''' associated with memory reuse. Valois ~\cite{Valois-thesis-1995} proposed a memory management method for link-based data structures that addresses these problems. The method associates a reference count with each node of reusable memory. A node is reused only when no processes or data structures point to it. The method solves the ABA problem for acyclic link-based data structures, and allows lock-free algorithms more flexibility as nodes are not required to be freed immediately after a delete operation (e.g.\ dequeue, pop, delete min, etc.). However, there are race conditions that may corrupt data structure that use this method. In this report we correct these race conditions and present a corrected version of Valois''s method.