we already known that this holds. Therefore, by the same argument as in the first case, we conclude that there is a path between op and op in CG ,
op 1 defined as in the first case By the same reasoning as in the first case, each of these operations is a vertex and (op i , op i?1 ), (op i , op i ?1 ) are edges of CG(op, op ) , for each i, i : 2 ? i ? k, 2 ? i ? k, Since DS(op 1 ) ? DS(op 1 ) = ?, we conclude that op and op are connected by a path in CG(op, op ) ,
Wait-free made fast, Proceedings of the twenty-seventh annual ACM symposium on Theory of computing , STOC '95, pp.538-547, 1995. ,
DOI : 10.1145/225058.225271
Disentangling multi-object operations (extended abstract), Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing , PODC '97, pp.111-120, 1997. ,
DOI : 10.1145/259380.259431
URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.30.1771
Universal constructions for multi-object operations, Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing , PODC '95, pp.184-193, 1995. ,
DOI : 10.1145/224964.224985
URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.80.4860
Universal constructions for large objects, IEEE Transactions on Parallel and Distributed Systems, vol.10, issue.12, pp.1317-1332, 1999. ,
DOI : 10.1109/71.819952
URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.161.5007
Universal operations, Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing , PODC '96, pp.223-232, 1996. ,
DOI : 10.1145/248052.248097
Built-In Coloring for Highly-Concurrent Doubly-Linked Lists, Distributed Computing, 20th International Symposium, DISC 2006 Proceedings, pp.31-45, 2006. ,
DOI : 10.1007/11864219_3
Highly-concurrent multi-word synchronization, Proceedings of the 9th international conference on Distributed computing and networking, ICDCN'08, pp.112-123, 2008. ,
DOI : 10.1007/978-3-540-77444-0_9
URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.167.2736
Single-version stms can be multi-version permissive, Proceedings of the 12th international conference on Distributed computing and networking, pp.83-94, 2011. ,
Inherent limitations on disjoint-access parallel implementations of transactional memory, Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures, SPAA '09, pp.69-78, 2009. ,
URL : https://hal.archives-ouvertes.fr/hal-00992693
A method for implementing lock-free shared-data structures, Proceedings of the fifth annual ACM symposium on Parallel algorithms and architectures , SPAA '93, pp.261-270, 1993. ,
DOI : 10.1145/165231.165265
On the liveness of transactional memory, Proceedings of the 31st ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, PODC '12 ,
A universal construction for wait-free transaction friendly data structures, Proceedings of the 22nd ACM symposium on Parallelism in algorithms and architectures, SPAA '10, pp.335-344, 2010. ,
DOI : 10.1145/1810479.1810538
Towards a universal construction for transaction-based multiprocess programs, ICDCN, pp.61-75, 2012. ,
DOI : 10.1016/j.tcs.2012.09.011
URL : https://hal.archives-ouvertes.fr/inria-00576755
What Really Makes Transactions Faster?, Proc. of the 1st TRANSACT 2006 workshop, 2006. ,
The RedBlue Adaptive Universal Constructions, Proceedings of the 23rd international conference on Distributed computing, DISC'09, pp.127-141, 2009. ,
DOI : 10.1007/978-3-642-04355-0_15
A highly-efficient wait-free universal construction, Proceedings of the 23rd ACM symposium on Parallelism in algorithms and architectures, SPAA '11, pp.325-334, 2011. ,
DOI : 10.1145/1989493.1989549
Practical lock freedom, 2003. ,
On obstruction-free transactions, Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures, SPAA '08, pp.304-313, 2008. ,
DOI : 10.1145/1378533.1378587
A methodology for implementing highly concurrent data structures, Proceedings of the second ACM SIGPLAN symposium on Principles & Practice of Parallel Programming, PPOPP '90, pp.197-206, 1990. ,
Wait-free synchronization, ACM Transactions on Programming Languages and Systems, vol.13, issue.1, pp.124-149, 1991. ,
DOI : 10.1145/114005.102808
Nonblocking memory management support for dynamic-sized data structures, ACM Transactions on Computer Systems, vol.23, issue.2, pp.146-196, 2005. ,
DOI : 10.1145/1062247.1062249
Transactional memory: architectural support for lock-free data structures, Proceedings of the 20th annual international symposium on computer architecture, ISCA '93, pp.289-300, 1993. ,
DOI : 10.1109/isca.1993.698569
URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.208.4448
Linearizability: a correctness condition for concurrent objects, ACM Transactions on Programming Languages and Systems, vol.12, issue.3, pp.463-492, 1990. ,
DOI : 10.1145/78969.78972
Disjoint-access-parallel implementations of strong shared memory primitives, Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing , PODC '94, pp.151-160, 1994. ,
DOI : 10.1145/197917.198079
Adaptive software transactional memory Earlier but expanded version available as TR 868, Proceedings of the 19th International Symposium on Distributed Computing, 2005. ,
DOI : 10.1007/11561927_26
URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.126.9568
On maintaining multiple versions in stm, Proceedings of the 29th ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, PODC '10, pp.16-25, 2010. ,
Software transactional memory, Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing, PODC '95, pp.204-213, 1995. ,
NZTM, Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures, SPAA '09, 2009. ,
DOI : 10.1145/1583991.1584048
Locking without blocking, Proceedings of the eleventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems , PODS '92, pp.212-222, 1992. ,
DOI : 10.1145/137097.137873
Robustm: A robust software transactional system, Stabilization, Safety, and Security in Distributed Systems, Proceedings, 2010. ,
the list L by appending a node containing num as the next element of that pointed to by end, and updating end to point to the newly appended node. Search(L, num) searches L for the first occurrence of num, starting from the element pointed to by start. Search returns true if num is in L and false otherwise. Throughout this code, if T is a type with some field f , then ptr to T t declares that t is a pointer to an object of type T and t ? f denotes the f field of that object. CreateDI(T ) creates a new data item of type T and returns a pointer to it, ReadDI() and WriteDI() are used when accessing a data item or a field of a data item ,