TDynamicSharedLock

A shared mutex ownership wrapper that allows dynamic locking, unlocking, and deferred locking.