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.