%    Predefined journal names:
%  acmcs: Computing Surveys		acta: Acta Infomatica
%  cacm: Communications of the ACM
%  ibmjrd: IBM J. Research & Development ibmsj: IBM Systems Journal
%  ieeese: IEEE Trans. on Soft. Eng.	ieeetc: IEEE Trans. on Computers
%  ieeetcad: IEEE Trans. on Computer-Aided Design of Integrated Circuits
%  ipl: Information Processing Letters	jacm: Journal of the ACM
%  jcss: J. Computer & System Sciences	scp: Science of Comp. Programming
%  sicomp: SIAM J. on Computing		tocs: ACM Trans. on Comp. Systems
%  tods: ACM Trans. on Database Sys.	tog: ACM Trans. on Graphics
%  toms: ACM Trans. on Math. Software	toois: ACM Trans. on Office Info. Sys.
%  toplas: ACM Trans. on Prog. Lang. & Sys.
%  tcs: Theoretical Computer Science
@string{ieeepds="IEEE Transactions on Parallel and Distributed Systems"}
@string{ieeese="IEEE Transactions on Software Engineering"}
@string{spe="Software---\-Practice and Experience"}
@string{sigplan="SIGPLAN Notices"}
@string{joop="Journal of Object-Oriented Programming"}
@string{popl="Conference Record of the ACM Symposium on Principles of Programming Languages"}
@string{osr="Operating Systems Review"}
@string{pldi="Programming Language Design and Implementation"}

@inproceedings{Hochstein05,
    keywords	= {Application software; Computer aided software engineering; Concurrent computing; Educational
                  institutions; High performance computing; Humans; Instruments; Productivity; Programming profession;
                  Software engineering},
    author	= {Lorin Hochstein and Jeff Carver and Forrest Shull and Sima Asgari and Victor Basili and Jeffrey K. Hollingsworth and Marvin V. Zelkowitz},
    title	= {Parallel Programmer Productivity: A Case Study of Novice Parallel Programmers},
    organization= {Supercomputing, 2005. Proceedings of the ACM/IEEE SC 2005 Conference},
    publisher	= {IEEE},
    location	= {Seattle, Washington, U.S.A.},
    month	= nov,
    year	= {2005},
    pages	= {35-35},
}

@article{Chicken,
    keywords	= {Chicken},
    author	= {Doug Zongker},
    title	= {Chicken Chicken Chicken: Chicken Chicken},
    year	= 2006
}

@misc{TBB,
    keywords 	= {Intel, TBB},
    key	= {TBB},
    title 	= {Thread Building Blocks},
    howpublished= {Intel, \url{https://www.threadingbuildingblocks.org}},
    optnote	= {Accessed: 2018-3},
}

@manual{www-cfa,
    key	= {CFA},
    keywords 	= {Cforall},
    author	= {C$\forall$},
    title 	= {C$\forall$ Programmming Language},
    note	= {\url{https://plg.uwaterloo.ca/~cforall}},
}

@manual{Cpp-Transactions,
    keywords	= {C++, Transactional Memory},
    title	= {Tech. Spec. for C++ Extensions for Transactional Memory {ISO/IEC} {TS} 19841:2015},
    organization= {International Standard Organization},
    address	= {Geneva, Switzerland},
    year	= 2015,
    note	= {\url{https://www.iso.org/standard/66343.html}},
}

@misc{BankTransfer,
    key	= {Bank Transfer},
    keywords 	= {Bank Transfer},
    title 	= {Bank Account Transfer Problem},
    howpublished	= {Wiki Wiki Web, \url{http://wiki.c2.com/?BankAccountTransferProblem}},
    year	= 2010
}

@misc{2FTwoHardThings,
    keywords 	= {Hard Problem},
    title 	= {TwoHardThings},
    author	= {Martin Fowler},
    howpublished= "\url{https://martinfowler.com/bliki/TwoHardThings.html}",
    year	= 2009
}

@article{IntrusiveData,
    title	= {Intrusive Data Structures},
    author	= {Jiri Soukup},
    journal	= {CppReport},
    year	= 1998,
    month	= May,
    volume	= {10/No5.},
    page	= 22
}

@article{Herlihy93,
    author	= {Herlihy, Maurice and Moss, J. Eliot B.},
    title	= {Transactional memory: architectural support for lock-free data structures},
    journal	= {SIGARCH Comput. Archit. News},
    issue_date	= {May 1993},
    volume	= {21},
    number	= {2},
    month	= may,
    year	= {1993},
    pages	= {289--300},
    numpages	= {12},
    publisher	= {ACM},
    address	= {New York, NY, USA},
}

@manual{affinityLinux,
    key	= {TBB},
    title	= "{Linux man page - sched\_setaffinity(2)}",
    howpublished= {\url{https://man7.org/linux/man-pages/man2/sched_setaffinity.2.html}},
}

@manual{affinityWindows,
    title	= "{Windows documentation - SetThreadAffinityMask function}",
    note	= {\url{https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setthreadaffinitymask}},
}

@manual{switchToWindows,
    title	= "{Windows (vs.85) - SwitchToFiber function}"
}

@manual{affinityFreebsd,
    title	= "{FreeBSD General Commands Manual - CPUSET(1)}"
}

@manual{affinityNetbsd,
    title	= "{NetBSD Library Functions Manual - AFFINITY(3)}"
}

@manual{affinityMacosx,
    title	= "{Affinity API Release Notes for OS X v10.5}"
}

@misc{NodeJs,
    title	= "{Node.js}",
    howpublished= "\url{https://nodejs.org/en/}",
}

@misc{SpringMVC,
    title	= "{Spring Web MVC}",
    howpublished= "\url{https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html}",
}

@misc{Django,
    title	= "{Django}",
    howpublished= "\url{https://www.djangoproject.com/}",
}

@article{Sleator85,
    author	= {Sleator, Daniel Dominic and Tarjan, Robert Endre},
    title	= {Self-Adjusting Binary Search Trees},
    journal	= jacm,
    volume	= 32,
    number	= 3,
    year	= 1985,
    issn	= {0004-5411},
    pages	= {652-686},
    address	= {New York, NY, USA},
}

@article{Berger00,
    author	= {Emery D. Berger and Kathryn S. McKinley and Robert D. Blumofe and Paul R. Wilson},
    title	= {Hoard: A Scalable Memory Allocator for Multithreaded Applications},
    booktitle	= {International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-IX)},
    journal	= sigplan,
    volume	= 35,
    number	= 11,
    month	= nov,
    year	= 2000,
    pages	= {117-128},
    note	= {International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-IX)},
}

@inproceedings{berger02reconsidering,
    author	= {Emery D. Berger and Benjamin G. Zorn and Kathryn S. McKinley},
    title	= {Reconsidering Custom Memory Allocation},
    organization= {Proceedings of the 17th ACM SIGPLAN Conference on Object-Oriented Programming: Systems, Languages, and Applications (OOPSLA) 2002},
    month	= nov,
    year	= 2002,
    location	= {Seattle, Washington, USA},
    publisher	= {ACM},
    address	= {New York, NY, USA},
}

@article{larson99memory,
    author	= {Per-{\AA}ke Larson and Murali Krishnan},
    title	= {Memory Allocation for Long-Running Server Applications},
    journal	= sigplan,
    volume	= 34,
    number	= 3,
    pages	= {176-185},
    year	= 1999,
    url		= {http://citeseer.ist.psu.edu/article/larson98memory.html}
}

@techreport{gidpt04,
    author	= {Anders Gidenstam and Marina Papatriantafilou and Philippas Tsigas},
    title	= {Allocating Memory in a Lock-Free Manner},
    number	= {2004-04},
    institution	= {Computing Science},
    address	= {Chalmers University of Technology},
    year	= 2004,
    url		= {http://citeseer.ist.psu.edu/gidenstam04allocating.html} 
}

@phdthesis{berger02thesis,
    author	= {Emery Berger},
    title	= {Memory Management for High-Performance Applications},
    school	= {The University of Texas at Austin},
    year	= 2002,
    month	= aug,
    url		= {http://citeseer.ist.psu.edu/article/berger02memory.html}
}

@misc{sgimisc,
    author	= {SGI},
    title	= {The Standard Template Library for {C++}},
    howpublished= {\textsf{www.sgi.com/tech/stl/Allocators.html}},
}

@misc{dlmalloc,
    author	= {Doug Lea},
    title	= {dlmalloc version 2.8.4},
    month	= may,
    year	= 2009,
    howpublished= {\url{ftp://g.oswego.edu/pub/misc/malloc.c}},
}

@misc{ptmalloc2,
    author	= {Wolfram Gloger},
    title	= {ptmalloc version 2},
    month	= jun,
    year	= 2006,
    howpublished= {\url{http://www.malloc.de/malloc/ptmalloc2-current.tar.gz}},
}

@misc{nedmalloc,
    author	= {Niall Douglas},
    title	= {nedmalloc version 1.06 Beta},
    month	= jan,
    year	= 2010,
    howpublished= {\url{http://prdownloads.sourceforge.net/nedmalloc/nedmalloc\_v1.06beta1\_svn1151.zip}},
}

@misc{hoard,
    author	= {Emery D. Berger},
    title	= {hoard version 3.8},
    month	= nov,
    year	= 2009,
    howpublished= {\url{http://www.cs.umass.edu/~emery/hoard/hoard-3.8/source/hoard-38.tar.gz}},
}

@comment{mtmalloc,
    author	= {Greg Nakhimovsky},
    title	= {Improving Scalability of Multithreaded Dynamic Memory Allocation},
    journal	= {Dr. Dobb's},
    month	= jul,
    year	= 2001,
    url		= {http://www.ddj.com/mobile/184404685?pgno=1}
}

@misc{mtmalloc,
    key	= {mtmalloc},
    title	= {mtmalloc.c},
    year	= 2009,
    howpublished= {\url{http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libmtmalloc/common/mtmalloc.c}},
}

@misc{tcmalloc,
    author	= {Sanjay Ghemawat and Paul Menage},
    title	= {tcmalloc version 1.5},
    month	= jan,
    year	= 2010,
    howpublished= {\url{http://google-perftools.googlecode.com/files/google-perftools-1.5.tar.gz}},
}

@inproceedings{streamflow,
    author	= {Scott Schneider and Christos D. Antonopoulos and Dimitrios S. Nikolopoulos},
    title	= {Scalable Locality-Conscious Multithreaded Memory Allocation},
    organization= {International Symposium on Memory Management (ISSM'06)},
    month	= jun,
    year	= 2006,
    pages	= {84-94},
    location	= {Ottawa, Ontario, Canada},
    publisher	= {ACM},
    address	= {New York, NY, USA},
}

@misc{streamflowweb,
    author	= {Scott Schneider and Christos Antonopoulos and Dimitrios Nikolopoulos},
    title	= {Streamflow},
    howpublished= {\url{http://people.cs.vt.edu/~scschnei/streamflow}},
}

@inproceedings{Blumofe94,
    author	= {R. Blumofe and C. Leiserson},
    title	= {Scheduling Multithreaded Computations by Work Stealing},
    organization= {Proceedings of the 35th Annual Symposium on Foundations of Computer Science, Santa Fe, New Mexico.},
    pages	= {356-368},
    year	= 1994,
    month	= nov,
    url		= {http://citeseer.ist.psu.edu/article/blumofe94scheduling.html}
}

@article{Johnstone99,
    author	= {Mark S. Johnstone and Paul R. Wilson},
    title	= {The Memory Fragmentation Problem: Solved?},
    journal	= sigplan,
    volume	= 34,
    number	= 3,
    pages	= {26-36},
    year	= 1999,
}

@inproceedings{Grunwald93,
    author	= {Dirk Grunwald and Benjamin G. Zorn and Robert Henderson},
    title	= {Improving the Cache Locality of Memory Allocation},
    organization= {{SIGPLAN} Conference on Programming Language Design and Implementation},
    pages	= {177-186},
    year	= 1993,
    url		= {http://citeseer.ist.psu.edu/grunwald93improving.html}
}

@inproceedings{Wilson95,
    author	= {Wilson, Paul R. and Johnstone, Mark S. and Neely, Michael and Boles, David},
    title	= {Dynamic Storage Allocation: A Survey and Critical Review},
    organization= {Proc. Int. Workshop on Memory Management},
    address	= {Kinross Scotland, UK},
    year	= 1995,
    url		= {http://citeseer.ist.psu.edu/wilson95dynamic.html} 
}

@inproceedings{Siebert00,
    author	= {Fridtjof Siebert},
    title	= {Eliminating External Fragmentation in a Non-moving Garbage Collector for Java},
    organization= {CASES '00: Proceedings of the 2000 international conference on Compilers, architecture, and synthesis for embedded systems},
    year	= 2000,
    isbn	= {1-58113-338-3},
    pages	= {9-17},
    location	= {San Jose, California, United States},
    publisher	= {ACM Press},
    address	= {New York, NY, USA}
}

@inproceedings{Lim98,
   author	= {Tian F. Lim and Przemyslaw Pardyak and Brian N. Bershad},
   title	= {A Memory-Efficient Real-Time Non-copying Garbage Collector},
   organization= {ISMM '98: Proceedings of the 1st international symposium on Memory management},
   year	= 1998,
   pages	= {118-129},
   location	= {Vancouver, British Columbia, Canada},
   publisher	= {ACM Press},
   address	= {New York, NY, USA}
}

@article{Chang01,
    author	= {J. Morris Chang and Woo Hyong Lee and Witawas Srisa-an},
    title	= {A Study of the Allocation Behavior of {C++} Programs},
    journal	= {J. Syst. Softw.},
    volume	= 57,
    number	= 2,
    year	= 2001,
    issn	= {0164-1212},
    pages	= {107-118},
    publisher	= {Elsevier Science Inc.},
    address	= {New York, NY, USA}
}

@article{Herlihy93b,
    author	= {Maurice Herlihy},
    title	= {A Methodology for Implementing Highly Concurrent Data Objects},
    journal	= toplas,
    volume	= 15,
    number	= 5,
    year	= 1993,
    issn	= {0164-0925},
    pages	= {745-770},
    publisher	= {ACM Press},
    address	= {New York, NY, USA}
}

@article{Denning05,
    author	= {Peter J. Denning},
    title	= {The Locality Principle},
    journal	= cacm,
    volume	= 48,
    number	= 7,
    year	= 2005,
    issn	= {0001-0782},
    pages	= {19-24},
    publisher	= {ACM Press},
    address	= {New York, NY, USA}
}

@misc{wilson-locality,
    author	= {Paul R. Wilson},
    title	= {Locality of Reference, Patterns in Program Behavior, Memory Management, and Memory Hierarchies},
    url		= {http://citeseer.ist.psu.edu/337869.html}
}

@inproceedings{Feng05,
    author	= {Yi Feng and Emery D. Berger},
    title	= {A Locality-Improving Dynamic Memory Allocator},
    organization= {Proceedings of the 2005 Workshop on Memory System Performance},
    location	= {Chicago, Illinois},
    publisher	= {ACM},
    address	= {New York, NY, USA},
    month	= jun,
    year	= 2005,
    pages	= {68-77},
}

@inproceedings{grunwald-locality,
    author	= {Dirk Grunwald and Benjamin Zorn and Robert Henderson},
    title	= {Improving the Cache Locality of Memory Allocation},
    organization= {PLDI '93: Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation},
    year	= 1993,
    isbn	= {0-89791-598-4},
    pages	= {177-186},
    location	= {Albuquerque, New Mexico, United States},
    publisher	= {ACM Press},
    address	= {New York, NY, USA}
}

@article{Alexandrescu01b,
    author	= {Andrei Alexandrescu},
    title	= {{volatile} -- Multithreaded Programmer's Best Friend},
    journal	= {Dr. Dobb's},
    month	= feb,
    year	= 2001,
    url		= {http://www.ddj.com/cpp/184403766}
}

@article{Attardi03,
    author	= {Joseph Attardi and Neelakanth Nadgir},
    title	= {A Comparison of Memory Allocators in Multiprocessors},
    journal	= {Sun Developer Network},
    month	= jun,
    year	= 2003,
    note	= {\url{http://developers.sun.com/solaris/articles/multiproc/multiproc.html}},
}

@unpublished{memlayout,
    author	= {Peter Jay Salzman},
    title	= {Memory Layout and the Stack},
    journal	= {Using GNU's GDB Debugger},
    note	= {\url{http://dirac.org/linux/gdb/02a-Memory\_Layout\_And\_The\_Stack.php}},
}

@unpublished{Ferguson07,
    author	= {Justin N. Ferguson},
    title	= {Understanding the Heap by Breaking It},
    note	= {\url{https://www.blackhat.com/presentations/bh-usa-07/Ferguson/Whitepaper/bh-usa-07-ferguson-WP.pdf}},
}

@inproceedings{Huang06,
    author	= {Xianglong Huang and Brian T Lewis and Kathryn S McKinley},
    title	= {Dynamic Code Management: Improving Whole Program Code Locality in Managed Runtimes},
    organization= {VEE '06: Proceedings of the 2nd international conference on Virtual execution environments},
    year	= 2006,
    isbn	= {1-59593-332-6},
    pages	= {133-143},
    location	= {Ottawa, Ontario, Canada},
    publisher	= {ACM Press},
    address	= {New York, NY, USA}
 }

@inproceedings{Herlihy03,
    author	= {M. Herlihy and V. Luchangco and M. Moir},
    title	= {Obstruction-free Synchronization: Double-ended Queues as an Example},
    organization= {Proceedings of the 23rd IEEE International Conference on Distributed Computing Systems},
    year	= 2003,
    month	= may,
    url		= {http://www.cs.brown.edu/~mph/publications.html}
}

@techreport{Detlefs93,
    author	= {David L. Detlefs and Al Dosser and Benjamin Zorn},
    title	= {Memory Allocation Costs in Large {C} and {C++} Programs},
    number	= {CU-CS-665-93},
    institution = {University of Colorado},
    address	= {130 Lytton Avenue, Palo Alto, CA 94301 and Campus Box 430, Boulder, CO 80309},
    year	= 1993,
    url		= {http://citeseer.ist.psu.edu/detlefs93memory.html} 
}

@inproceedings{Oyama99,
    author	= {Y. Oyama and K. Taura and A. Yonezawa},
    title	= {Executing Parallel Programs With Synchronization Bottlenecks Efficiently},
    organization= {Proceedings of International Workshop on Parallel and Distributed Computing for Symbolic and Irregular Applications (PDSIA '99)},
    year	= {1999},
    pages	= {182--204},
    publisher	= {World Scientific},
    address	= {Sendai, Japan},
}

@inproceedings{Dice02,
    author	= {Dave Dice and Alex Garthwaite},
    title	= {Mostly Lock-Free Malloc},
    organization= {Proceedings of the 3rd international symposium on Memory management (ISMM'02)},
    month	= jun,
    year	= 2002,
    pages	= {163-174},
    location	= {Berlin, Germany},
    publisher	= {ACM},
    address	= {New York, NY, USA},
}

@article{Sleator85,
    author	= {Sleator, Daniel Dominic and Tarjan, Robert Endre},
    title	= {Self-Adjusting Binary Search Trees},
    journal	= jacm,
    volume	= 32,
    number	= 3,
    year	= 1985,
    issn	= {0004-5411},
    pages	= {652-686},
    doi		= {http://doi.acm.org.proxy.lib.uwaterloo.ca/10.1145/3828.3835},
    address	= {New York, NY, USA},
}

@techreport{gidpt04,
    author	= {Anders Gidenstam and Marina Papatriantafilou and Philippas Tsigas},
    title	= {Allocating Memory in a Lock-Free Manner},
    number	= {2004-04},
    institution	= {Computing Science},
    address	= {Chalmers University of Technology},
    year	= 2004,
    url		= {http://citeseer.ist.psu.edu/gidenstam04allocating.html} 
}

@phdthesis{berger02thesis,
    author	= {Emery Berger},
    title	= {Memory Management for High-Performance Applications},
    school	= {The University of Texas at Austin},
    year	= 2002,
    month	= aug,
    url		= {http://citeseer.ist.psu.edu/article/berger02memory.html}
}

@misc{sgimisc,
    author	= {SGI},
    title	= {The Standard Template Library for {C++}},
    howpublished= {\url{www.sgi.com/tech/stl/Allocators.html}},
}

@misc{ptmalloc3,
    author	= {Wolfram Gloger},
    title	= {ptmalloc version 3},
    month	= may,
    year	= 2006,
    howpublished= {\url{http://www.malloc.de/malloc/ptmalloc3-current.tar.gz}},
}

@misc{tbbmalloc,
    key		= {tbbmalloc},
    author	= {multiple contributors},
    title	= {Threading Building Blocks},
    month	= mar,
    year	= 2020,
    howpublished= {\url{https://github.com/oneapi-src/oneTBB/releases/tag/v2020.2}},
}

@misc{GNUallocAPI,
    author	= {GNU},
    title	= {Summary of malloc-Related Functions},
    year	= 2020,
    howpublished= {\url{https://www.gnu.org/software/libc/manual/html\_node/Summary-of-Malloc.html}},
}

@misc{SeriallyReusable,
    author	= {IBM},
    title	= {Serially reusable programs},
    month	= mar,
    year	= 2021,
    howpublished= {\url{https://www.ibm.com/docs/en/ztpf/1.1.0.15?topic=structures-serially-reusable-programs}},
}

@misc{librseq,
    author	= {Mathieu Desnoyers},
    title	= {Library for Restartable Sequences},
    month	= mar,
    year	= 2022,
    howpublished= {\url{https://github.com/compudj/librseq}},
}

@misc{glibc,
    key		= {glibc},
    author	= {multiple contributors},
    title	= {glibc version 2.31},
    month	= feb,
    year	= 2020,
    howpublished= {\url{https://www.gnu.org/software/libc}},
}

@misc{jemalloc,
    key		= {jemalloc},
    author	= {multiple contributors},
    title	= {jemalloc version 5.2.1},
    month	= apr,
    year	= 2022,
    howpublished= {\url{https://github.com/jemalloc/jemalloc}{https://github.com/jemalloc/jemalloc}},
}

@misc{uniformPRNG,
    author	= {\CC Standard Library},
    title	= {\lstinline{uniform_int_distribution}},
    month	= apr,
    year	= 2022,
    howpublished= {\url{https://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution}},
}

@misc{fisherPRNG,
    author	= {\CC Standard Library},
    title	= {\lstinline{fister_f_distribution}},
    month	= apr,
    year	= 2022,
    howpublished= {\url{https://www.cplusplus.com/reference/random/fisher_f_distribution}},
}

@misc{streamflowweb,
    author	= {Scott Schneider and Christos Antonopoulos and Dimitrios Nikolopoulos},
    title	= {Streamflow},
    howpublished= {\url{http://people.cs.vt.edu/~scschnei/streamflow}},
}

@inproceedings{Blumofe94,
    author	= {R. Blumofe and C. Leiserson},
    title	= {Scheduling Multithreaded Computations by Work Stealing},
    booktitle	= {Proceedings of the 35th Annual Symposium on Foundations of Computer Science, Santa Fe, New Mexico.},
    pages	= {356-368},
    year	= 1994,
    month	= nov,
    url		= {http://citeseer.ist.psu.edu/article/blumofe94scheduling.html}
}

@article{Chang01,
    author	= {J. Morris Chang and Woo Hyong Lee and Witawas Srisa-an},
    title	= {A Study of the Allocation Behavior of {C++} Programs},
    journal	= {J. Syst. Softw.},
    volume	= 57,
    number	= 2,
    year	= 2001,
    issn	= {0164-1212},
    pages	= {107-118},
    doi		= {http://dx.doi.org/10.1016/S0164-1212(00)00122-9},
    publisher	= {Elsevier Science Inc.},
    address	= {New York, NY, USA}
}

@misc{wilson-locality,
    author	= {Paul R. Wilson},
    title	= {Locality of Reference, Patterns in Program Behavior, Memory Management, and Memory Hierarchies},
    url		= {http://citeseer.ist.psu.edu/337869.html}
}

@inproceedings{grunwald-locality,
    author	= {Dirk Grunwald and Benjamin Zorn and Robert Henderson},
    title	= {Improving the Cache Locality of Memory Allocation},
    booktitle	= {PLDI '93: Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation},
    year	= 1993,
    isbn	= {0-89791-598-4},
    pages	= {177-186},
    location	= {Albuquerque, New Mexico, United States},
    doi		= {http://doi.acm.org.proxy.lib.uwaterloo.ca/10.1145/155090.155107},
    publisher	= {ACM Press},
    address	= {New York, NY, USA}
}

@article{Alexandrescu01b,
    author	= {Andrei Alexandrescu},
    title	= {{volatile} -- Multithreaded Programmer's Best Friend},
    journal	= {Dr. Dobb's},
    month	= feb,
    year	= 2001,
    url		= {http://www.ddj.com/cpp/184403766}
}

@article{Attardi03,
    author	= {Joseph Attardi and Neelakanth Nadgir},
    title	= {A Comparison of Memory Allocators in Multiprocessors},
    journal	= {Sun Developer Network},
    month	= jun,
    year	= 2003,
    note	= {\url{http://developers.sun.com/solaris/articles/multiproc/multiproc.html}},
}

@unpublished{Ferguson07,
    author	= {Justin N. Ferguson},
    title	= {Understanding the Heap by Breaking It},
    note	= {\url{https://www.blackhat.com/presentations/bh-usa-07/Ferguson/Whitepaper/bh-usa-07-ferguson-WP.pdf}},
}

@inproceedings{Herlihy03,
    author	= {M. Herlihy and V. Luchangco and M. Moir},
    title	= {Obstruction-free Synchronization: Double-ended Queues as an Example},
    booktitle	= {Proceedings of the 23rd IEEE International Conference on Distributed Computing Systems},
    year	= 2003,
    month	= may,
    url		= {http://www.cs.brown.edu/~mph/publications.html}
}
