Mutual exclusion is necessary when at least one task 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 it is omitted, a spin_rw_mutex
or queuing_rw_mutex
behaves like its non-_rw_
counterpart. The next section shows an example where the parameter is explicitly false in order to obtain a reader lock.
3.144.202.167