|
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.
|