# queuing_rw_mutex

[mutex.queuing_rw_mutex]

A `queuing_rw_mutex` is a class that models the ReaderWriterMutex requirement concept. The `queuing_rw_mutex` is not recursive. The `queuing_rw_mutex` is fair, threads acquire a lock on a mutex in the order that they request it.

    // Defined in header <oneapi/tbb/queuing_rw_mutex.h>

    namespace oneapi {
    namespace tbb {
        class queuing_rw_mutex {
        public:
            queuing_rw_mutex() noexcept;
            ~queuing_rw_mutex();

            queuing_rw_mutex(const queuing_rw_mutex&) = delete;
            queuing_rw_mutex& operator=(const queuing_rw_mutex&) = delete;

            class scoped_lock;

            static constexpr bool is_rw_mutex = true;
            static constexpr bool is_recursive_mutex = false;
            static constexpr bool is_fair_mutex = true;
        };
    } // namespace tbb
    } // namespace oneapi

## Member classes

class scoped_lock

  Corresponding `scoped_lock` class. See the ReaderWriterMutex requirement.

## Member functions

queuing_rw_mutex()

  Constructs unlocked `queuing_rw_mutex`.

~queuing_rw_mutex()

  Destroys unlocked `queuing_rw_mutex`.