gitextract_33ubg_0h/ ├── LICENSE.txt ├── README.md ├── common/ │ ├── HazardEras.hpp │ ├── HazardPointers.hpp │ ├── HazardPointersSimQueue.hpp │ ├── README.md │ ├── RIStaticPerThread.hpp │ ├── ThreadRegistry.cpp │ ├── ThreadRegistry.hpp │ └── pfences.h ├── datastructures/ │ ├── generic/ │ │ ├── TMHashMap.hpp │ │ ├── TMLinkedListQueue.hpp │ │ ├── TMLinkedListSet.hpp │ │ └── TMRedBlackBST.hpp │ ├── hashmaps/ │ │ ├── CRWWPSTMResizableHashSet.hpp │ │ ├── ESTMResizableHashSet.hpp │ │ ├── OFLFResizableHashSet.hpp │ │ ├── OFWFResizableHashSet.hpp │ │ └── TinySTMResizableHashSet.hpp │ ├── linkedlists/ │ │ ├── CRWWPLinkedListSet.hpp │ │ ├── ESTMLinkedListSet.hpp │ │ ├── HazardEras.hpp │ │ ├── HazardPointers.hpp │ │ ├── MagedHarrisLinkedListSetHE.hpp │ │ ├── MagedHarrisLinkedListSetHP.hpp │ │ ├── OFLFLinkedListSet.hpp │ │ ├── OFWFLinkedListSet.hpp │ │ ├── STMLinkedListSet.hpp │ │ └── TinySTMLinkedListSet.hpp │ ├── queues/ │ │ ├── CRWWPLinkedListQueue.hpp │ │ ├── ESTMArrayLinkedListQueue.hpp │ │ ├── ESTMLinkedListQueue.hpp │ │ ├── FAAArrayQueue.hpp │ │ ├── HazardPointers.hpp │ │ ├── HazardPointersSimQueue.hpp │ │ ├── LCRQueue.hpp │ │ ├── MichaelScottQueue.hpp │ │ ├── OFLFArrayLinkedListQueue.hpp │ │ ├── OFLFArrayQueue.hpp │ │ ├── OFLFLinkedListQueue.hpp │ │ ├── OFWFArrayLinkedListQueue.hpp │ │ ├── OFWFLinkedListQueue.hpp │ │ ├── README.md │ │ ├── SimQueue.hpp │ │ ├── TinySTMArrayLinkedListQueue.hpp │ │ ├── TinySTMLinkedListQueue.hpp │ │ └── TurnQueue.hpp │ ├── sequential/ │ │ ├── HashSet.hpp │ │ ├── LinkedListQueue.hpp │ │ ├── LinkedListSet.hpp │ │ ├── RedBlackBST.hpp │ │ ├── SortedArraySet.hpp │ │ ├── SortedVectorSet.hpp │ │ └── TreeSet.hpp │ ├── treemaps/ │ │ ├── ESTMRedBlackTree.hpp │ │ ├── HazardEras.hpp │ │ ├── NatarajanTreeHE.hpp │ │ ├── OFLFRedBlackTree.hpp │ │ ├── OFWFRedBlackTree.hpp │ │ └── TinySTMRedBlackTree.hpp │ ├── trevor_brown_abtree/ │ │ ├── Makefile │ │ ├── TrevorBrownABTree.hpp │ │ ├── common/ │ │ │ ├── atomic_ops/ │ │ │ │ ├── atomic_ops/ │ │ │ │ │ ├── generalize-small.h │ │ │ │ │ ├── generalize.h │ │ │ │ │ └── sysdeps/ │ │ │ │ │ ├── README │ │ │ │ │ ├── acquire_release_volatile.h │ │ │ │ │ ├── aligned_atomic_load_store.h │ │ │ │ │ ├── all_acquire_release_volatile.h │ │ │ │ │ ├── all_aligned_atomic_load_store.h │ │ │ │ │ ├── all_atomic_load_store.h │ │ │ │ │ ├── ao_t_is_int.h │ │ │ │ │ ├── armcc/ │ │ │ │ │ │ └── arm_v6.h │ │ │ │ │ ├── atomic_load_store.h │ │ │ │ │ ├── char_acquire_release_volatile.h │ │ │ │ │ ├── char_atomic_load_store.h │ │ │ │ │ ├── emul_cas.h │ │ │ │ │ ├── gcc/ │ │ │ │ │ │ ├── alpha.h │ │ │ │ │ │ ├── arm.h │ │ │ │ │ │ ├── avr32.h │ │ │ │ │ │ ├── cris.h │ │ │ │ │ │ ├── hppa.h │ │ │ │ │ │ ├── ia64.h │ │ │ │ │ │ ├── m68k.h │ │ │ │ │ │ ├── mips.h │ │ │ │ │ │ ├── powerpc.h │ │ │ │ │ │ ├── s390.h │ │ │ │ │ │ ├── sh.h │ │ │ │ │ │ ├── sparc.h │ │ │ │ │ │ ├── x86.h │ │ │ │ │ │ └── x86_64.h │ │ │ │ │ ├── generic_pthread.h │ │ │ │ │ ├── hpc/ │ │ │ │ │ │ ├── hppa.h │ │ │ │ │ │ └── ia64.h │ │ │ │ │ ├── ibmc/ │ │ │ │ │ │ └── powerpc.h │ │ │ │ │ ├── icc/ │ │ │ │ │ │ └── ia64.h │ │ │ │ │ ├── int_acquire_release_volatile.h │ │ │ │ │ ├── int_aligned_atomic_load_store.h │ │ │ │ │ ├── int_atomic_load_store.h │ │ │ │ │ ├── msftc/ │ │ │ │ │ │ ├── arm.h │ │ │ │ │ │ ├── common32_defs.h │ │ │ │ │ │ ├── x86.h │ │ │ │ │ │ └── x86_64.h │ │ │ │ │ ├── ordered.h │ │ │ │ │ ├── ordered_except_wr.h │ │ │ │ │ ├── read_ordered.h │ │ │ │ │ ├── short_acquire_release_volatile.h │ │ │ │ │ ├── short_aligned_atomic_load_store.h │ │ │ │ │ ├── short_atomic_load_store.h │ │ │ │ │ ├── standard_ao_double_t.h │ │ │ │ │ ├── sunc/ │ │ │ │ │ │ ├── sparc.h │ │ │ │ │ │ ├── x86.h │ │ │ │ │ │ └── x86_64.h │ │ │ │ │ ├── test_and_set_t_is_ao_t.h │ │ │ │ │ └── test_and_set_t_is_char.h │ │ │ │ └── atomic_ops.h │ │ │ ├── dcss/ │ │ │ │ ├── dcss_plus.h │ │ │ │ ├── dcss_plus_impl.h │ │ │ │ └── testing.cpp │ │ │ ├── descriptors/ │ │ │ │ ├── descriptors.h │ │ │ │ ├── descriptors_impl.h │ │ │ │ └── descriptors_impl2.h │ │ │ ├── errors.h │ │ │ ├── plaf.h │ │ │ ├── recordmgr/ │ │ │ │ ├── allocator_bump.h │ │ │ │ ├── allocator_interface.h │ │ │ │ ├── allocator_new.h │ │ │ │ ├── allocator_new_segregated.h │ │ │ │ ├── allocator_once.h │ │ │ │ ├── arraylist.h │ │ │ │ ├── blockbag.h │ │ │ │ ├── blockpool.h │ │ │ │ ├── debug_info.h │ │ │ │ ├── debugcounter.h │ │ │ │ ├── debugprinting.h │ │ │ │ ├── globals.h │ │ │ │ ├── hashtable.h │ │ │ │ ├── lockfreeblockbag.h │ │ │ │ ├── pool_interface.h │ │ │ │ ├── pool_none.h │ │ │ │ ├── pool_perthread_and_shared.h │ │ │ │ ├── reclaimer_debra.h │ │ │ │ ├── reclaimer_debraplus.h │ │ │ │ ├── reclaimer_hazardptr.h │ │ │ │ ├── reclaimer_interface.h │ │ │ │ ├── reclaimer_none.h │ │ │ │ ├── reclaimer_rcu.h │ │ │ │ ├── record_manager.h │ │ │ │ ├── record_manager_single_type.h │ │ │ │ └── recovery_manager.h │ │ │ ├── rq/ │ │ │ │ ├── rq_dcssp.h │ │ │ │ ├── rq_debugging.h │ │ │ │ ├── rq_htm_rwlock.h │ │ │ │ ├── rq_provider.h │ │ │ │ ├── rq_rwlock.h │ │ │ │ ├── rq_snapcollector.h │ │ │ │ ├── rq_unsafe.h │ │ │ │ └── snapcollector/ │ │ │ │ ├── reportitem.h │ │ │ │ ├── snapcollector.h │ │ │ │ └── snapcollector_test.cpp │ │ │ └── rwlock.h │ │ ├── ds/ │ │ │ └── brown_ext_abtree_lf/ │ │ │ ├── brown_ext_abtree_lf.h │ │ │ ├── brown_ext_abtree_lf_adapter.h │ │ │ └── brown_ext_abtree_lf_impl.h │ │ └── minimal_example.cpp │ └── trevor_brown_natarajan/ │ ├── TrevorBrownNatarajanTree.hpp │ └── ds/ │ └── natarajan_ext_bst_lf/ │ ├── natarajan_ext_bst_lf_adapter.h │ ├── natarajan_ext_bst_lf_stage1.h │ └── natarajan_ext_bst_lf_stage2_impl.h ├── graphs/ │ ├── BenchmarkLatencyCounter.hpp │ ├── BenchmarkLatencyQueues.hpp │ ├── BenchmarkMaps.hpp │ ├── BenchmarkQueues.hpp │ ├── BenchmarkSPS.hpp │ ├── BenchmarkSets.hpp │ ├── Makefile │ ├── PBenchmarkQueues.hpp │ ├── PBenchmarkSPS.hpp │ ├── PBenchmarkSets.hpp │ ├── README.md │ ├── bin/ │ │ └── .gitignore │ ├── data/ │ │ └── README.md │ ├── latency-counter.cpp │ ├── lib/ │ │ └── .gitignore │ ├── plots/ │ │ ├── caption.gp │ │ ├── latency-counter.gp │ │ ├── pcaption.gp │ │ ├── plot-all.sh │ │ ├── plot.sh │ │ ├── pq-enq-deq.gp │ │ ├── pq-ll-enq-deq.gp │ │ ├── pset-hash-1k.gp │ │ ├── pset-ll-1k.gp │ │ ├── pset-tree-1k.gp │ │ ├── pset-tree-1m.gp │ │ ├── psps-integer.gp │ │ ├── q-array-enq-deq.gp │ │ ├── q-enq-deq.gp │ │ ├── q-ll-enq-deq.gp │ │ ├── set-hash-1k.gp │ │ ├── set-ll-10k.gp │ │ ├── set-ll-1k.gp │ │ ├── set-tree-10k.gp │ │ ├── set-tree-1k.gp │ │ ├── sps-integer.gp │ │ ├── sps-object.gp │ │ ├── stress-multi-process-q.gp │ │ └── styles.inc │ ├── pq-ll-enq-deq.cpp │ ├── pread-while-writing.cpp │ ├── pset-hash-1k.cpp │ ├── pset-ll-10k.cpp │ ├── pset-ll-1k.cpp │ ├── pset-tree-1k.cpp │ ├── pset-tree-1m.cpp │ ├── psps-integer.cpp │ ├── q-array-enq-deq.cpp │ ├── q-ll-enq-deq.cpp │ ├── run-all-aws.sh │ ├── set-hash-1k.cpp │ ├── set-ll-10k.cpp │ ├── set-ll-1k.cpp │ ├── set-tree-10k.cpp │ ├── set-tree-1k.cpp │ ├── set-tree-1m.cpp │ ├── sps-integer.cpp │ └── sps-object.cpp ├── pdatastructures/ │ ├── README.md │ ├── TMHashMap.hpp │ ├── TMHashMapByRef.hpp │ ├── TMLinkedListQueue.hpp │ ├── TMLinkedListSet.hpp │ ├── TMLinkedListSetByRef.hpp │ ├── TMRedBlackTree.hpp │ ├── TMRedBlackTreeByRef.hpp │ └── pqueues/ │ ├── HazardPointers.hpp │ ├── MichaelScottQueue.hpp │ ├── PFriedmanQueue.hpp │ ├── PMDKLinkedListQueue.hpp │ ├── PMichaelScottQueue.hpp │ ├── POFLFLinkedListQueue.hpp │ ├── POFLFMPLinkedListQueue.hpp │ ├── POFWFLinkedListQueue.hpp │ ├── RomLRLinkedListQueue.hpp │ └── RomLogLinkedListQueue.hpp ├── ptms/ │ ├── OneFilePTMLF.hpp │ ├── OneFilePTMLFMultiProcess.hpp │ ├── OneFilePTMWF.hpp │ ├── PMDKTM.hpp │ ├── README.md │ ├── atlas/ │ │ ├── README.md │ │ └── atlas.patch │ ├── romuluslog/ │ │ ├── RomulusLog.cpp │ │ ├── RomulusLog.hpp │ │ └── malloc.cpp │ ├── romuluslr/ │ │ ├── RomulusLR.cpp │ │ ├── RomulusLR.hpp │ │ └── malloc.cpp │ └── rwlocks/ │ ├── CRWWP.hpp │ └── CRWWP_SpinLock.hpp └── stms/ ├── CRWWPSTM.hpp ├── ESTM.hpp ├── OneFileLF.hpp ├── OneFileWF.hpp ├── TinySTM.hpp ├── estm-0.3.0/ │ ├── .gitignore │ ├── AUTHORS │ ├── COPYING │ ├── Makefile │ ├── Makefile.in │ ├── README │ ├── VERSIONS │ ├── include/ │ │ ├── mod_local.h │ │ ├── mod_mem.h │ │ ├── mod_print.h │ │ ├── mod_stats.h │ │ ├── stm.h │ │ └── wrappers.h │ └── src/ │ ├── atomic.h │ ├── atomic_ops/ │ │ ├── AUTHORS │ │ ├── COPYING │ │ ├── README │ │ ├── aligned_atomic_load_store.h │ │ ├── all_acquire_release_volatile.h │ │ ├── ao_t_is_int.h │ │ ├── atomic_ops.h │ │ ├── generalize-small.h │ │ ├── generalize.h │ │ ├── ia64.h │ │ ├── ordered_except_wr.h │ │ ├── powerpc.h │ │ ├── read_ordered.h │ │ ├── sparc.h │ │ ├── standard_ao_double_t.h │ │ ├── test_and_set_t_is_ao_t.h │ │ ├── test_and_set_t_is_char.h │ │ ├── x86.h │ │ └── x86_64.h │ ├── gc.c │ ├── gc.h │ ├── mod_local.c │ ├── mod_mem.c │ ├── mod_print.c │ ├── mod_stats.c │ ├── stm.c │ └── wrappers.c └── tinystm/ ├── ChangeLog ├── Doxyfile ├── GNU-LICENSE.txt ├── MIT-LICENSE.txt ├── Makefile ├── Makefile.clang ├── Makefile.common ├── Makefile.gcc ├── Makefile.icc ├── Makefile.suncc ├── README.md ├── abi/ │ ├── Makefile │ ├── Makefile.common │ ├── abi.c │ ├── arch_x86.S │ ├── dtmc/ │ │ ├── Makefile │ │ ├── arch.S │ │ ├── libitm.h │ │ ├── libtanger-stm.public-symbols │ │ ├── libtanger-stm.support │ │ ├── tanger-stm-internal.h │ │ ├── tanger.c │ │ ├── tanger.h │ │ └── tm_macros.h │ ├── gcc/ │ │ ├── Makefile │ │ ├── alloc_cpp.c │ │ ├── arch.S │ │ ├── clone.c │ │ ├── eh.c │ │ ├── libitm.h │ │ └── tm_macros.h │ ├── intel/ │ │ ├── Makefile │ │ ├── alloc.c │ │ ├── arch.S │ │ ├── libitm.h │ │ └── tm_macros.h │ ├── libitm.h.tpl.cpp │ ├── libitm.h.tpl.footer │ ├── libitm.h.tpl.header │ ├── libitm.h.tpl.unifdef │ ├── oracle/ │ │ ├── Makefile │ │ ├── arch.S │ │ └── otm.c │ ├── pthread_wrapper.h │ ├── test/ │ │ └── Makefile │ └── tm_macros.h ├── include/ │ ├── mod_ab.h │ ├── mod_cb.h │ ├── mod_log.h │ ├── mod_mem.h │ ├── mod_order.h │ ├── mod_print.h │ ├── mod_stats.h │ ├── stm.h │ └── wrappers.h ├── lib/ │ └── .gitignore ├── src/ │ ├── .gitignore │ ├── atomic.h │ ├── atomic_ops/ │ │ ├── AUTHORS │ │ ├── COPYING │ │ ├── README │ │ ├── aligned_atomic_load_store.h │ │ ├── all_acquire_release_volatile.h │ │ ├── ao_t_is_int.h │ │ ├── atomic_ops.h │ │ ├── generalize-small.h │ │ ├── generalize.h │ │ ├── ia64.h │ │ ├── ordered_except_wr.h │ │ ├── powerpc.h │ │ ├── read_ordered.h │ │ ├── sparc.h │ │ ├── standard_ao_double_t.h │ │ ├── test_and_set_t_is_ao_t.h │ │ ├── test_and_set_t_is_char.h │ │ ├── x86.h │ │ └── x86_64.h │ ├── gc.c │ ├── gc.h │ ├── mod_ab.c │ ├── mod_cb_mem.c │ ├── mod_log.c │ ├── mod_order.c │ ├── mod_print.c │ ├── mod_stats.c │ ├── stm.c │ ├── stm_internal.h │ ├── stm_wbctl.h │ ├── stm_wbetl.h │ ├── stm_wt.h │ ├── tls.h │ ├── utils.h │ └── wrappers.c └── test/ ├── Makefile ├── intset/ │ ├── .gitignore │ ├── Makefile │ ├── README.rbtree │ ├── intset.c │ ├── rbtree.c │ ├── rbtree.h │ ├── tm.h │ └── types.h └── regression/ ├── .gitignore ├── Makefile ├── irrevocability.c ├── perf.c └── types.c