The ScopedARWReadLock class acquires a read lock to the specified mutex upon creation and releases this upon destruction (usually at the end of a code block. This simplifies cases where your code contains many return statements where you'd otherwise have to manually unlock before returning. Only use ScopedARWReadLock for a short block of your code. Do not use ScopedARWReadLock mindlessly at the beginning of a function! This will block all other threads for the whole runtime of the function which usually is much longer that required.
THREADSAFE.