class SharedLock

Defined at line 19 of file ../../src/storage/lib/vfs/cpp/shared_mutex.h

Drop-in replacement for std::shared_lock that has thread safety annotations. The current libcxx

implementation does not have these annotations, and thus don't work correctly.

TODO(https://fxbug.dev/361092091): this can be removed replaced with std::shared_lock if we

update to an implementation that is annotated with the correct thread capabilities.

Public Methods

void SharedLock (std::shared_mutex & m)

Defined at line 21 of file ../../src/storage/lib/vfs/cpp/shared_mutex.h

void ~SharedLock ()

It seems like this should be __TA_RELEASE_SHARED instead of __TA_RELEASE but

__TA_RELEASE_SHARED gives errors when a ScopedLock goes out of scope:

releasing mutex using shared access, expected exclusive access

This is probably a compiler bug.

Defined at line 29 of file ../../src/storage/lib/vfs/cpp/shared_mutex.h

void lock ()

Defined at line 31 of file ../../src/storage/lib/vfs/cpp/shared_mutex.h

void unlock ()

Same comment about __TA_RELEASE vs. __TA_RELEASE_SHARED as in the destructor.

Defined at line 33 of file ../../src/storage/lib/vfs/cpp/shared_mutex.h