This checker is made above PthreadLockChecker and works the same. It is adapted for the next primitives:
- std::mutex
- std::timed_mutex
- std::recursive_mutex
- std::recursive_timed_mutex
- std::shared_mutex
- std::shared_timed_mutex
Base checker class is extended for shared semantics checks.
P.S. Test file is quite big. But it just consists of the same blocks for each mutex kind. Except shared semantics has a bit different tests.
I repeat, this is a false positive. Recursive mutexes can be locked twice, that's the whole point.