[CP.2] link CP.102 list of books and add Herlihy-Shavit

closes #1725
This commit is contained in:
Sergey Zubkov
2022-01-03 17:04:06 -05:00
parent ce5341b02d
commit fdbaff2bf7
2 changed files with 7 additions and 3 deletions

View File

@@ -1,6 +1,6 @@
# <a name="main"></a>C++ Core Guidelines
June 17, 2021
January 3, 2022
Editors:
@@ -14111,7 +14111,7 @@ Unless you do, nothing is guaranteed to work and subtle errors will persist.
##### Note
In a nutshell, if two threads can access the same object concurrently (without synchronization), and at least one is a writer (performing a non-`const` operation), you have a data race.
For further information of how to use synchronization well to eliminate data races, please consult a good book about concurrency.
For further information of how to use synchronization well to eliminate data races, please consult a good book about concurrency (See [Carefully study the literature](#Rconc-literature)).
##### Example, bad
@@ -15411,7 +15411,7 @@ Become an expert before shipping lock-free code for others to use.
* Damian Dechev, Peter Pirkelbauer, and Bjarne Stroustrup: Understanding and Effectively Preventing the ABA Problem in Descriptor-based Lock-free Designs. 13th IEEE Computer Society ISORC 2010 Symposium. May 2010.
* Damian Dechev and Bjarne Stroustrup: Scalable Non-blocking Concurrent Objects for Mission Critical Code. ACM OOPSLA'09. October 2009
* Damian Dechev, Peter Pirkelbauer, Nicolas Rouquette, and Bjarne Stroustrup: Semantically Enhanced Containers for Concurrent Real-Time Systems. Proc. 16th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems (IEEE ECBS). April 2009.
* Maurice Herlihy, Nir Shavit, Victor Luchangco, Michael Spear, "The Art of Multiprocessor Programming", 2nd ed. September 2020
### <a name="Rconc-double"></a>CP.110: Do not write your own double-checked locking for initialization