Reader Writer Mutexes#
Mutual exclusion is necessary when at least one thread writes to a
shared variable. But it does no harm to permit multiple readers into a
protected region. The reader-writer variants of the mutexes, denoted by
_rw_ in the class names, enable multiple readers by distinguishing
reader locks from writer locks. There can be more than one reader
lock on a given mutex.
Requests for a reader lock are distinguished from requests for a writer
lock via an extra boolean parameter in the constructor for
scoped_lock. The parameter is false to request a reader lock and
true to request a writer lock. It defaults to true so that when
omitted, a spin_rw_mutex or queuing_rw_mutex behaves like its
non-_rw_ counterpart.