-
Type: Task
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Labels:
-
Service Arch
-
Fully Compatible
-
Service Arch 2020-08-24, Service arch 2020-09-07
We have a decent amount of internal synchronization infrastructure for locking, notification, and threading. They live in these src directories:
- mongo/stdx
- mongo/platform
- mongo/util
There are three topics here:
- Locking and Latching (includes Mutex, WithLock, SpinLock, LatchAnalyzer, DiagnosticInfo)
- Notification (Notifyable, stdx::condition_variable, Notification)
- Threading (BackgroundJob, PeriodicRunner[Impl], stdx::thread)
Since this spans several directories, we should make a new markdown in the docs folder. This is intended to be abstract documentation, describe relationships and state transitions not code in common language.